可能有理解不正確的地方,歡迎批評指正 chrome
用chrome第一次請求一個地址(或者ctrl+F5)好比:http://my.oschina.net/img/gotop.gif,產生的request及response以下 瀏覽器
注意在response中的幾個信息: ui
Expires:表示的要過時的絕對時間,本例中是2013年的1月16號 spa
Cache-Control:表示要過時的相對時間,本例中是2592000,單位應該是s .net
爲何要有2個呢,能夠去參考這篇博客http://my.oschina.net/xishuixixia/blog/94514 blog
這樣當下次請求這個地址時會先取客戶端本地的時間和這些時間進行比對,若是還未過時,直接返回304,以下圖 get
若是過時了腫麼辦,必需要明確的是過時了並不表明改變了,還記得大明湖畔的Last-Modified麼, 博客
你們請注意,再第一次請求時,reponse中有Last-Modified這一項,而request中是沒有If-Modified-Since的 ast
當咱們第二次請求時,瀏覽器會根據接收到的Last-Modified來發送If-Modified-Since信息,而後服務端會根據這個時間來和比對從而判斷是否過時 request