国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

HTTP 304錯(cuò)誤的詳細(xì)講解

2019-11-20 21:43:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Not Modified 客戶端有緩沖的文檔并發(fā)出了一個(gè)條件性的請(qǐng)求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,原來(lái)緩沖的文檔還可以繼續(xù)使用。

如果客戶端在請(qǐng)求一個(gè)文件的時(shí)候,發(fā)現(xiàn)自己緩存的文件有 Last Modified ,那么在請(qǐng)求中會(huì)包含 If Modified Since ,這個(gè)時(shí)間就是緩存文件的 Last Modified 。因此,如果請(qǐng)求中包含 If Modified Since,就說(shuō)明已經(jīng)有緩存在客戶端。只要判斷這個(gè)時(shí)間和當(dāng)前請(qǐng)求的文件的修改時(shí)間就可以確定是返回 304 還是 200 。對(duì)于靜態(tài)文件,例如:CSS、圖片,服務(wù)器會(huì)自動(dòng)完成 Last Modified 和 If Modified Since 的比較,完成緩存或者更新。但是對(duì)于動(dòng)態(tài)頁(yè)面,就是動(dòng)態(tài)產(chǎn)生的頁(yè)面,往往沒(méi)有包含 Last Modified 信息,這樣瀏覽器、網(wǎng)關(guān)等都不會(huì)做緩存,也就是在每次請(qǐng)求的時(shí)候都完成一個(gè) 200 的請(qǐng)求。

因此,對(duì)于動(dòng)態(tài)頁(yè)面做緩存加速,首先要在 Response 的 HTTP Header 中增加 Last Modified 定義,其次根據(jù) Request 中的 If Modified Since 和被請(qǐng)求內(nèi)容的更新時(shí)間來(lái)返回 200 或者 304 。雖然在返回 304 的時(shí)候已經(jīng)做了一次數(shù)據(jù)庫(kù)查詢,但是可以避免接下來(lái)更多的數(shù)據(jù)庫(kù)查詢,并且沒(méi)有返回頁(yè)面內(nèi)容而只是一個(gè) HTTP Header,從而大大的降低帶寬的消耗,對(duì)于用戶的感覺(jué)也是提高。

當(dāng)這些緩存有效的時(shí)候,通過(guò) HttpWatch 查看一個(gè)請(qǐng)求會(huì)得到這樣的結(jié)果:

第一次訪問(wèn) 200

鼠標(biāo)點(diǎn)擊二次訪問(wèn) (Cache)

按F5刷新 304

按Ctrl+F5強(qiáng)制刷新 200

如果是這樣的就說(shuō)明緩存真正有效了。以上就是我對(duì) HTTP 304 的一個(gè)理解。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 滦南县| 山西省| 同心县| 象州县| 江陵县| 清涧县| 诏安县| 乌审旗| 凤凰县| 花莲市| 德安县| 汉源县| 宜君县| 靖远县| 图们市| 东平县| 绥宁县| 梅河口市| 化德县| 防城港市| 大足县| 土默特左旗| 通许县| 洛川县| 富阳市| 望都县| 竹山县| 荔波县| 沙湾县| 金寨县| 揭东县| 军事| 全南县| 沁阳市| 巴彦淖尔市| 饶平县| 焉耆| 深水埗区| 四川省| 林州市| 镇江市|