手机看片国产高清,精品福利一区二区三区,精品香蕉在线观看免费,美日韩一区二区,国产青青青,精品99视频,日韩欧美网

聯(lián)系方式
更多

奇蟻客服: 点击这里给我发消息

工作时间:

周一 至 周日 : 8:00-18:00

联系方式:

夏經(jīng)理:18605387375

详细内容

HTTP 304狀態(tài)分析技術(shù)好貼!分享給大家!

时间:2016-12-21     作者:泰安奇蟻科技【原创】   阅读

來源泰安網(wǎng)站建設(shè)、泰安網(wǎng)站設(shè)計、泰安營銷型網(wǎng)站制、泰安企業(yè)網(wǎng)站制作泰安購物商城制作、泰安手機(jī)網(wǎng)站制作、泰安網(wǎng)站優(yōu)化推廣、泰安手機(jī)app開發(fā)、泰安微信公眾號開發(fā)泰安泰安微信營銷推廣泰安奇蟻科技www.yuewenedu.com   電話18605387375

 

今天泰安奇蟻科技在查看web服務(wù)器日志的時候看到有很多304http狀態(tài),為什么會返回304而不是200呢?這與服務(wù)器的緩存設(shè)置非常有關(guān),所以分享來給大家!

HTTP 304: Not Modified

我解釋給大家標(biāo)準(zhǔn)解釋是:Not Modified 客戶端有緩沖的文檔并發(fā)出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用。

泰安奇蟻科技先來看下瀏覽器的工作原理:

(1)直接在緩存中去獲取內(nèi)容。如果先前有效訪問的響應(yīng)頭包含 Expires, max-age的話,“打開新窗口”、“輸入URI回車”、“前一頁”、“后一頁”這些瀏覽器行為不會使瀏覽器在Expires, max-age設(shè)置的有效期時間內(nèi)去訪問服務(wù)器,而是在緩存中去獲取內(nèi)容,但是"刷新'""重載"例外。

(2)訪問服務(wù)器,根據(jù)服務(wù)器響應(yīng)來獲取內(nèi)容。這種情況發(fā)生在設(shè)置no-cache等頭標(biāo)要求不緩存,或者是設(shè)置了 Expires,max-age但瀏覽器行為是“刷新”或“重載”時候。'Last-Modified'、'ETag'、'must-revalidate' 等有些特殊,不直接受瀏覽器行為影響,它們必須訪問服務(wù)器后,再由服務(wù)器判斷是直接發(fā)送新的資源,還是發(fā)送一個304 Not Modfied讓瀏覽器使用緩存中的資源。

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

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

如何測試HTTP狀態(tài),緩存是否有效?跟我來看!

可以使用HttpWatch

第一次訪問 200

鼠標(biāo)點擊二次訪問 (Cache)

F5刷新 304

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

如果是這樣的就說明緩存真正有效了。

HTTP 304 的理解

最近泰安網(wǎng)站建設(shè)和同事一起看WebCache問題,又進(jìn)一步理解了 HTTP 中的 304 又有了一些了解。

304 的標(biāo)準(zhǔn)解釋是:Not Modified 客戶端有緩沖的文檔并發(fā)出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用。

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

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

當(dāng)這些緩存有效的時候,通過 HttpWatch 查看一個請求會得到這樣的結(jié)果:

第一次訪問 200

鼠標(biāo)點擊二次訪問 (Cache)

F5刷新 304

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

如果是這樣的就說明緩存真正有效了。以上就是我對 HTTP 304 的一個理解。

文章來自泰安網(wǎng)站建設(shè)、泰安網(wǎng)站設(shè)計泰安營銷型網(wǎng)站制、泰安企業(yè)網(wǎng)站制作泰安購物商城制作、泰安手機(jī)網(wǎng)站制作、泰安網(wǎng)站優(yōu)化推廣、泰安手機(jī)app開發(fā)、泰安微信公眾號開發(fā)、泰安泰安微信營銷推廣泰安奇蟻科技www.yuewenedu.com   電話18605387375

 


客服中心
联系方式
18605387375
4008-538-676
- 售前客服
- 售后客服
掃一掃 關(guān)注我們
seo seo