私が取り組んでいる Web アプリケーションを最適化するためのいくつかの戦略、特に Web ブラウザーのキャッシングと動的データに関連するものを研究してきました。同じ動的コンテンツがセッションで複数回読み込まれる可能性があるため、PHP の出力バッファーを使用し、コンテンツのハッシュを ETag として使用する次の方法を考え出しました。
PHPスクリプトを完全に実行する必要があるため、この方法で本当に節約できるのは、データをユーザーに転送することだけです知っておくべきか、他の方法がより良いかもしれません。
各ページの上部に含めているコードは次のとおりです。
<?php
function hash_buffer($content) {
$buffer_hash = crc32($content);
if ($_SERVER['HTTP_IF_NONE_MATCH'] == $buffer_hash) {
header('HTTP/1.1 304 Not Modified');
header("ETag: $buffer_hash");
return '';
}
header('Cache-Control: private, no-cache');
header("ETag: $buffer_hash");
return $content;
}
ob_start('hash_buffer');
?>