HTTP 304 Response


當一個客戶端(通常是瀏覽器)向web服務器發送一個請求,如果web服務器返回304響應,則表示此請求的本地緩存是最新的,可以直接使用。這種方法可以節省帶寬,避免重復響應。

一般來說,可以將一個請求分為兩類,二者以請求中包含的request header來區分:

有條件的請求(Conditional Validation Request) 無條件的請求(Unconditional Request)
If-Modified-Since
或者
If-None-Match

一般來說If-Modified-Since的值來自於上一次這條請求的Response中的Last-Modified,If-None-Match的值來自於上一次這條請求的Response中的ETag。

如果是Conditional Request,則服務器去校驗這兩個header,並以此判斷客戶端的緩存是否是最新的,如果是,則返回一個HTTP/304 Not Modified header,其中response body為空;如果不是,則返回一個HTTP/200 OK header,並將最新的內容放在response body中。

所以如果需要很好的利用HTTP 304 Response,首先需要Web服務器,在其響應頭中包含合理的值,例如Last-Modified和ETag,然后客戶端才能據此發送Conditional Request。


免責聲明!

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



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