对于大量静态内容的网站,实现 HTTP 缓存标头可以显着提高性能。 PHP 提供了几个内置函数来帮助完成此任务。
要启用缓存,请考虑使用以下标头:
至进一步优化性能,处理条件请求:
<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>
如果 If-None-Match 标头与 ETag 匹配,或者 If-Modified-Since 标头与 Last-Modified 日期匹配,则 304 Not Modified 响应为返回,说明缓存内容足够。否则,服务器将返回最新内容。
通过实现这些缓存标头,您可以显着减少 Web 服务器上的负载,并通过更快的页面加载来改善用户体验。
以上是如何在 PHP 中利用 HTTP 缓存标头来增强 Web 性能?的详细内容。更多信息请关注PHP中文网其他相关文章!