對於大量靜態內容的網站,實作 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中文網其他相關文章!