用PHP控制使用者瀏覽器快取!

2021-04-13 05:08:50 字數 981 閱讀 4763

你寫的php程式是否高效?你是否會擔心自己的程式太龐雜,執行速度很慢?你是否用過php動態生成?

其實每種瀏覽器都有快取策略,會暫時將每乙個瀏覽過的檔案快取在乙個特殊的資料夾裡。我們就可以在使用者重複提交頁面請求的時候,告訴使用者這個頁面沒有改變,可以呼叫快取。 那我們怎麼知道使用者有沒有這個頁面的快取資料呢? 其實瀏覽器在傳送請求的時候會先傳送http頭,一般象這樣: 

date

:sun,30

jul 

200609:

18:11gmt 

content

-type

:image

/gif 

last

-modified

:wed,19

jul 

200607:

40:06gmt 

etag:"

8c55da8d6abc61:2327

"content

-length

:14757

其中last-modified: wed, 19 jul 2006 07:40:06 gmt

etag: "8c55da8d6abc61:2327"就是有關頁面的快取資訊的。然後如果伺服器返回的響應**不是http 200 (ok),而是 304的話,瀏覽器就會從快取中讀取資料。

根據這個原理,我寫了乙個函式,這個函式可以用在不經常更新或者需要經常重新整理的頁面,可以大大減輕伺服器的負擔,因為它如果發現客戶端有快取,就向客戶端傳送乙個304響應,然後停止程式的執行。

<?

php 

cache(); 

echo

date("

y-m-d h:i:s

");  

function

cache() 

else

header('

etag:'.

$etag

); } 

?>

瀏覽器快取控制

瀏覽器快取控制 last modified if modified since validation 在瀏覽器第一次請求某乙個url時,伺服器端的返回狀態碼200,內容是客戶端請求的資源,同時有乙個last modified的屬性標記此檔案在伺服器端最後被修改的時間。客戶端第二次請求此url時,根據...

php 瀏覽器快取

瀏覽器快取動態內容,快取的內容在瀏覽器本地,而內容由web伺服器生成,任何一方都不可能完成這一系列過程,他們之間有一種溝通機制,這就是快取協商.如何協商 如用ie瀏覽器訪問這個頁面時,返回狀態碼200,連續多次重新整理這個頁面,這個頁面並沒有使用本地快取,也沒有向伺服器作出任何表示.開啟ie的和這個...

php 瀏覽器 快取,深入PHP與瀏覽器快取的分析

我們往往在伺服器上對快取設定進行各種優化方案,但是我們卻很少注意到客戶端快取,準確的說是瀏覽器的快取機制。其實每種瀏覽器都有快取策略,會暫時將每乙個瀏覽過的檔案快取在乙個特殊的資料夾裡。我們就可以在使用者重複提交頁面請求的時候,告訴使用者這個頁 面沒有改變,可以呼叫快取。那我們怎麼知道使用者有沒有這...