首頁 後端開發 php教程 HTTP 快取標頭如何優化 PHP 網站效能?

HTTP 快取標頭如何優化 PHP 網站效能?

Nov 04, 2024 am 05:37 AM

How can HTTP Cache Headers Optimize PHP Website Performance?

使用HTTP 快取頭來最佳化PHP 網站效能

儘管有先進的快取系統和框架,但有時還是有必要實現基本的HTTP快取標頭以提高網站效能。特別是對於缺乏某些快取功能的 PHP 5.1.0 網站,標頭起著至關重要的作用。

PHP 網站的有效緩存標頭

要啟用有效的緩存,請考慮以下標頭:

  • Last -Modified: 設定文件的上次修改日期,瀏覽器使用該日期來確定自上次造訪以來內容是否已更改。
  • ETag:指定文件的唯一識別符,允許瀏覽器檢查是否已經有最新版本。
  • Expires:設定絕對過期時間對於文檔,指示瀏覽器在該時間之後不要快取它。
  • Cache-Control: 控制瀏覽器快取文件的方式和時間長度。它可以設定為“公共”,允許任何人快取文檔,也可以設定為“私有”,將快取限制為單一使用者。如果您需要更長的快取長度而又不允許公共緩存,您可能需要考慮使用「private_no_expire」。

實現條件請求

除了設定快取標頭之外,處理條件請求至關重要,例如「If-Modified-Since」和「If -None-Match」。這些請求允許瀏覽器檢查文件自特定日期以來是否已更改,或者 ETag 自上次訪問以來是否已更改。

如果內容未更改,您可以傳回「304 Not Modified」狀態代碼,表示瀏覽器可以繼續使用快取版本。這種有效的方法可以最大限度地減少不必要的下載並加快網站載入速度。

以下PHP 程式碼範例示範如何處理條件請求:

<code class="php">$timestamp = /* PHP script to generate a unique timestamp */;
$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 &amp;amp;&amp;amp; $if_none_match == $etag) || (!$if_none_match)) &amp;amp;&amp;amp;
    ($if_modified_since &amp;amp;&amp;amp; $if_modified_since == $tsstring))
{
    header('HTTP/1.1 304 Not Modified');
    exit();
}
else
{
    header("Last-Modified: $tsstring");
    header("ETag: \"{$etag}\"");
}</code>
登入後複製

透過有效地實現快取標頭並處理條件請求,您可以顯著提高您的PHP 網站的效能和使用者體驗。

以上是HTTP 快取標頭如何優化 PHP 網站效能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

11個最佳PHP URL縮短腳本(免費和高級) 11個最佳PHP URL縮短腳本(免費和高級) Mar 03, 2025 am 10:49 AM

11個最佳PHP URL縮短腳本(免費和高級)

Instagram API簡介 Instagram API簡介 Mar 02, 2025 am 09:32 AM

Instagram API簡介

在Laravel中使用Flash會話數據 在Laravel中使用Flash會話數據 Mar 12, 2025 pm 05:08 PM

在Laravel中使用Flash會話數據

簡化的HTTP響應在Laravel測試中模擬了 簡化的HTTP響應在Laravel測試中模擬了 Mar 12, 2025 pm 05:09 PM

簡化的HTTP響應在Laravel測試中模擬了

php中的捲曲:如何在REST API中使用PHP捲曲擴展 php中的捲曲:如何在REST API中使用PHP捲曲擴展 Mar 14, 2025 am 11:42 AM

php中的捲曲:如何在REST API中使用PHP捲曲擴展

構建具有Laravel後端的React應用程序:第2部分,React 構建具有Laravel後端的React應用程序:第2部分,React Mar 04, 2025 am 09:33 AM

構建具有Laravel後端的React應用程序:第2部分,React

在Codecanyon上的12個最佳PHP聊天腳本 在Codecanyon上的12個最佳PHP聊天腳本 Mar 13, 2025 pm 12:08 PM

在Codecanyon上的12個最佳PHP聊天腳本

Laravel中的通知 Laravel中的通知 Mar 04, 2025 am 09:22 AM

Laravel中的通知

See all articles