#2021加油帶頭人#昨天我們介紹了ETag。
浏覽器會緩存Nginx返回的ETag值。今天我們來學習另一個浏覽器緩存相關的header。
當浏覽器通過時間認為緩存已經過期了,這個時候浏覽器被再次請求的時候,就會去Nginx問一下是否内容有修改過,如果内容沒有修改過,就返回304那麼内容就不用返回了。這樣就節省了帶寬資源。
那麼Nginx是如何快速判斷該資源是否被修改過呢?
浏覽器會通過If-None-Match頭部填入ETag的值。
這樣Nginx在收到請求後會用ETag的值和If-None-Match裡的值進行比較。
當2個值想匹配的時候就會直接返回304.
當沒有帶If-None-Match頭部,或者If-None-Match頭部的值與ETag不匹配的時候返回200和資源
需要注意的是:服務器端在生成狀态碼為304的響應的時候,必須同時生成以下會存在于對應的200響應中的頭部:Cache-Control,Content-Location,Date,ETag,Expires和Vary。
說到304,最近有個哥們面試還問到了http狀态碼 301 302 304呢。
現在大家應該對這個304的使用場景,及作用比較清晰了。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!