php實現禁止瀏覽器緩存的方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
php實現禁止瀏覽器緩存的方法:可以通過meta標簽來實現禁止靜態頁的緩存,如【<meta http-equiv="expires" content="0" />】,expires用于設定網頁的過期時間。
方法如下:
一、對于靜態頁(就是通過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('Cache-Control: max-age=3600*24');//緩存1天,表示最大生存期是1天,超過1天瀏覽器必須去服務器重新讀取,這個時間是從用戶第一次讀取頁面時開始計時的二、對于PHP頁面:
對于動態頁面,緩存的代碼必須放在任何HTML標簽輸出之前,否則將會出錯。
<?php
header('Cache-Control:no-cache,must-revalidate');
header('Pragma:no-cache');
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('Last-Modified: '.gmdate('D, d M Y 01:01:01',$time).' GMT');//使用的是格林尼治時間,$time是指文件添加時候的時間戳感謝各位的閱讀!看完上述內容,你們對php實現禁止瀏覽器緩存的方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。