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

王林
發布: 2023-03-06 22:42:02
原創
2805 人瀏覽過

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

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

方法如下:

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

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

<!--expires用于设定网页的过期时间,一旦过期就必须从服务器上重新加载.时间必须使用GMT格式-->
<meta http-equiv="expires" content="0" />
登入後複製

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

<meta http-equiv="pragma" 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裡面新增的,相對於其他幾種方式能夠實現更細緻的快取控制。

<meta http-equiv="Cache-Control" content="no-cache,no-store, must-revalidate">
header(&#39;Cache-Control: max-age=3600*24&#39;);//缓存1天,表示最大生存期是1天,超过1天浏览器必须去服务器重新读取,这个时间是从用户第一次读取页面时开始计时的
登入後複製

二、對於PHP頁面:

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

<?php 
header(&#39;Cache-Control:no-cache,must-revalidate&#39;);   
header(&#39;Pragma:no-cache&#39;);   
header("Expires:0"); 
?>
登入後複製

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

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

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

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

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

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

相關推薦:php培訓

#

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板