web響應頭,請求頭的總結

一.禁止緩存請求

方法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報頭包括:普通報頭,請求報頭,響應報頭,實體報頭




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章