问:哪些 HTTP 标头对于 PHP 的有效缓存至关重要?
A: 在为网站实现 HTTP 缓存时,特定标头在指导浏览器如何管理缓存内容方面发挥着至关重要的作用。基本标头包括:
实现:
设置缓存策略:
<code class="php">session_cache_limiter('private_no_expire'); // Allow caching but do not reveal cache expiry time</code>
设置过期时间:
<code class="php">header("Cache-Control: max-age=" . (60 * 60 * 24 * 30)); // Set cache expiration to 30 days</code>
管理 If-Modified-Since 和 If-None-Match 标头:
将这些标头的值与 Last-Modified 和 ETag 标头进行比较,以避免不必要的重新请求:
<code class="php">$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT'; $etag = $language . $timestamp; $if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false; $if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] : false; if ((($if_none_match && $if_none_match == $etag) || (!$if_none_match)) && ($if_modified_since && $if_modified_since == $tsstring)) { header('HTTP/1.1 304 Not Modified'); exit(); } else { header("Last-Modified: $tsstring"); header("ETag: \"{$etag}\""); }</code>
以上是如何通过 PHP 有效利用 HTTP 标头进行缓存?的详细内容。更多信息请关注PHP中文网其他相关文章!