對http響應頭詳細探究(reponset head)


上次寫完了請求頭,這次寫寫響應頭吧。等寫完了之后,單獨在對瀏覽器緩存策略寫寫吧。

Accept-Ranges: 標識自身支持范圍請求(partial requests)。字段的具體值用於定義范圍請求的單位。

有none和bytes兩個值。

Age:一個非負整數,表示消息對象在緩存代理服務器中存貯的時長,以秒為單位。

Cache-Control:被用於在http請求和響應中,通過指定指令來實現緩存機制。

緩存指令是單向的,這意味着在請求中設置的指令,不一定被包含在響應中。有可能在請求頭也會有。

這個指令分為四種:可緩存性,到期,重新驗證和重新加載,其他。

可緩存性:public,private,

                no-cache:在發布緩存副本之前,強制要求緩存把請求提交給原始服務器進行驗證;緩存前要向服務器確認資源是否被更改。

                no-store:緩存不應存儲有關客戶端請求或服務器響應的任何內容。

到期:max-age:這是相對請求時間

Etag:一個對本地瀏覽器緩存版本的標識。HTTP1.1中才加入的一個屬性。

HTTP響應頭是資源的特定版本的標識符。這可以讓緩存更高效,並節省帶寬,因為如果內容沒有改變,Web服務器不需要發送完整的響應。而如果內容發生了變化,使用ETag有助於防止資源的同時更新相互覆蓋(“空中碰撞”)。

首次請求的時候會返回200外加etag標識,之后請求會返回304並帶着if-none-match字段來配合服務器的緩存檢驗。

Last-modified:

200的時候,用來服務器說明響應修改的最后的時間,304 的時候會變成if-last-modified,它會與server 上的資源修改時間作對比,來判斷要不要請求新的資源。

其中包含源頭服務器認定的資源做出修改的日期及時間。 它通常被用作一個驗證器來判斷接收到的或者存儲的資源是否彼此一致。由於精確度比  etag要低,所以這是一個備用機制。包含 if-modified-since 首部的條件請求會使用這個字段。

Server: 首部包含了處理請求的源頭服務器所用到的軟件相關信息.

Vary:

它決定了對於未來的一個請求頭,應該用一個緩存的回復(response)還是向源服務器請求一個新的回復。它被服務器用來表明在(內容協商算法)中選擇一個資源代表的時候應該使用哪些頭部信息(headers)。

具體來說是配合瀏覽器的協商緩存使用的字段。

 

 

響應頭里包含最重要的知識點:瀏覽器的緩存策略。

緩存分為兩種,強緩存和協商緩存。

強緩存根據expires 和 cache-control

協商緩存來根據 etags (if-none-match) 和 last-modified (if-last-modified)搭配使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM