HTTP的请求头标签 If-Modified-Since与Last-Modified 相等就是200新的请求 不等就是304没有变化
0.簡(jiǎn)要說(shuō)明:
Last-Modified【服務(wù)器給瀏覽器的】 與If-Modified-Since【瀏覽器給服務(wù)器的】都是用來(lái)標(biāo)記文件修改時(shí)間的
Last-Modified? == If-Modified-Since就是304【沒(méi)有變化】
Last-Modified? !== If-Modified-Since就是200【新的請(qǐng)求】
對(duì)于一些確定不會(huì)過(guò)期的文件? 直接用nginx的expire設(shè)置時(shí)間即可,這樣瀏覽器就不會(huì)再來(lái)服務(wù)器確實(shí)過(guò)期了,少了一次請(qǐng)求
1.基本定義
Last-Modified【服務(wù)器給瀏覽器的】 與If-Modified-Since【瀏覽器給服務(wù)器的】 都是標(biāo)準(zhǔn)的HTTP請(qǐng)求頭標(biāo)簽,用于記錄頁(yè)面的最后修改時(shí)間。
2.發(fā)送方向
Last-Modified 是由服務(wù)器發(fā)送給客戶端的HTTP請(qǐng)求頭標(biāo)簽
If-Modified-Since 則是由客戶端發(fā)送給服務(wù)器的HTTP請(qǐng)求頭標(biāo)簽
3.應(yīng)用場(chǎng)景
(1)Last-Modified
在瀏覽器第一次請(qǐng)求某一個(gè)URL時(shí),服務(wù)器端的返回狀態(tài)會(huì)是200,內(nèi)容是你請(qǐng)求的資源,同時(shí)有一個(gè)Last-Modified的屬性標(biāo)記此文件在服務(wù)期端最后被修改的時(shí)間,格式類似這樣:
Last-Modified: Fri, 12 May 2006 18:53:33 GMT
后面跟的時(shí)間是服務(wù)器存儲(chǔ)的文件修改時(shí)間
(2)If-Modified-Since
客戶端第二次請(qǐng)求此URL時(shí),根據(jù) HTTP 協(xié)議的規(guī)定,瀏覽器會(huì)向服務(wù)器傳送 If-Modified-Since 報(bào)頭,詢問(wèn)該時(shí)間之后文件是否有被修改過(guò):
If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT
后面跟的時(shí)間是本地瀏覽器存儲(chǔ)的文件修改時(shí)間
如果服務(wù)器端的資源沒(méi)有變化,則時(shí)間一致,自動(dòng)返回HTTP狀態(tài)碼304(Not Changed.)狀態(tài)碼,內(nèi)容為空,客戶端接到之后,就直接把本地緩存文件顯示到瀏覽器中,這樣就節(jié)省了傳輸數(shù)據(jù)量。
如果服務(wù)器端資源發(fā)生改變或者重啟服務(wù)器時(shí),時(shí)間不一致,就返回HTTP狀態(tài)碼200和新的文件內(nèi)容,客戶端接到之后,會(huì)丟棄舊文件,把新文件緩存起來(lái),并顯示到瀏覽器中。
以上操作可以保證不向客戶端重復(fù)發(fā)出資源,也保證當(dāng)服務(wù)器有變化時(shí),客戶端能夠得到最新的資源。
總結(jié)
以上是生活随笔為你收集整理的HTTP的请求头标签 If-Modified-Since与Last-Modified 相等就是200新的请求 不等就是304没有变化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蒋姓女儿起名字大全(蒋姓女孩名字汇总大全
- 下一篇: 2.8平方米等于多少公斤