一.禁止緩存請求
方法1 html文件上
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>
方法2 php文件上
<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
?>
方法3 ajax請求時
就是大家ajax時用到的?mt=隨便數據
二.請求,響應過程
1.當客戶端發起一個請求時,先查找TTL生存時間,也就是Cache-Control中的時間時候過期,如果沒過期,直接返回緩存的頁面。。
2.如果過期,須向服務器發送一個驗證(validation),它是一個包含If-Modified-Since報頭的請求。
如果服務器上的文件沒有發生修改,就會發送一個304Not Modified的響應,這樣瀏覽器就會使用已存在的文件,而不是從服務器重新獲取。
令一種驗證是加入一個If-None-Match報頭,它包含了ETag,如果服務器的ETag和客戶端的ETag相匹配,就返回一個304響應。
如圖,這裏禁止了緩存(Cache-Control:max-age=0),並且通過驗證 服務器文件沒有修改
另外,當點擊瀏覽器上的刷新,客戶端發送的請求中均是max-age=0,表示validate操作,發送請求到服務器 要求檢查cache,再更新cache,一般得到的是304 Not Modified,表示沒變動。
三.HTTP消息報頭的內容
http報頭包括:普通報頭,請求報頭,響應報頭,實體報頭
web響應頭,請求頭的總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.