】,expires用於設定網頁的過期時間。"/> 】,expires用於設定網頁的過期時間。">

首頁  >  文章  >  後端開發  >  php如何實作禁止瀏覽器緩存

php如何實作禁止瀏覽器緩存

王林
王林原創
2020-11-02 13:58:522662瀏覽

php實作禁止瀏覽器快取的方法:可以透過meta標籤來實現禁止靜態頁的緩存,如【361b754d440b709e252b10b3237fa14b】,expires用於設定網頁的過期時間。

php如何實作禁止瀏覽器緩存

方法如下:

(影片教學推薦:php影片教學

一、對於靜態頁(就是透過meta標籤來設定)


或透過pragma no-cache來設置,pragma出現在http-equiv屬性中,使用content屬性的no-cache值表示是否快取網頁(為了提高速度一些瀏覽器會快取瀏覽者瀏覽過的頁面,透過下面的定義,瀏覽器一般不會快取頁面,而且瀏覽器無法脫機瀏覽)。

Cache-Control:即快取控制,指定請求和回應遵循的快取機制。在要求訊息或回應訊息中設定Cache-Control並不會修改另一個訊息處理過程中的快取處理過程。

請求時的快取指令有no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached等,回應訊息中的指令有public、private、no -cache、no-store、no-transform、must-revalidate、 proxy-revalidate、max-age。

各個訊息中的部分指令意義如下:

Public:指示回應可被任何快取區快取。

Private:指示對於單一使用者的整個或部分回應訊息,不能被共用快取處理。這允許伺服器僅描述當使用者的部分回應訊息,此回應訊息對於其他使用者的請求無效。 

no-cache:指示請求或回應訊息無法快取 

no-store:用來防止重要的資訊被無意的發布。在請求訊息中發送將使得請求和回應訊息都不使用快取。 

max-age:指示客戶機可以接收生存期不大於指定時間(以秒為單位)的回應。

min-fresh:指示客戶機可以接收回應時間小於目前時間加上指定時間的回應。 

max-stale:指示客戶機可以接收超出逾時期間的回應訊息。如果指定max-stale訊息的值,那麼客戶機可以接收超出超時期指定值之內的回應訊息。

注意:Cache-Control 頭標是在HTTP1.1裡面新增的,相對於其他幾種方式能夠實現更細緻的快取控制。


header('Cache-Control: max-age=3600*24');//缓存1天,表示最大生存期是1天,超过1天浏览器必须去服务器重新读取,这个时间是从用户第一次读取页面时开始计时的

二、對於PHP頁面:

對於動態頁面,快取的程式碼必須放在任何HTML標籤輸出之前,否則將會出錯。

Last-Modified:文件的最後修改時間。它的用法是:

1:如果是靜態文件,客戶端會發上來它緩存裡的時間,apache會來比對,如果發現沒有修改就直接回傳一個頭,狀態碼是304,位元組數非常少。

2:如果是php動態文件,客戶端發上比對時間,php會判斷是否修改,如果修改時間相同,就只會返回1024字節,至於為什麼返回1024不得而知,如果你的php產生的檔案非常大,它也只回傳1024,所以比較省頻寬,客戶端會根據伺服器端發過來的修改時間自動從快取檔案顯示。

注意:如果沒有設定Last-Modified頭,只設定了Cache-Control和Expires也是可以運作的,但每次要求要傳回真實的檔案位元組數,而不是1024

#php設定Last-Modified 頭標範例程式碼如下:

header('Last-Modified: '.gmdate('D, d M Y 01:01:01',$time).' GMT');//使用的是格林尼治时间,$time是指文件添加时候的时间戳

相關推薦:php培訓

#

以上是php如何實作禁止瀏覽器緩存的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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