前端性能優化-狀態碼200和304


什么是200和304

狀態碼200:請求已成功,請求所希望的響應頭或數據體將隨此響應返回。即返回的數據為全量的數據,如果文件不通過GZIP壓縮的話,文件是多大,則要有多大傳輸量。

狀態碼304:如果客戶端發送了一個帶條件的 GET 請求且該請求已被允許,而文檔的內容(自上次訪問以來或者根據請求的條件)並沒有改變,則服務器應當返回這個狀態碼。即客戶端和服務器端只需要傳輸很少的數據量來做文件的校驗,如果文件沒有修改過,則不需要返回全量的數據。

200和304發生的條件

在客戶端強制刷新,如ctrl+f5這種情況下,所有的緩存策略失效,服務器端都會返回200;在客戶端非強制刷新,如點擊刷新按鈕或按f5的情況下,服務器端會根據request頭中:If-Modified-Since字段的時間與文件的實際修改時間進行比較,

如果修改時間比If-Modified-Since時間要新,則服務器會認為文件已經修改過了,向客戶端返回全量的數據,客戶端本地的緩存失效,狀態碼為200。

如果修改時間比If-Modified-Since時間要舊,則服務器會認為文件並未修改過,並且只會向客戶端寫回頭文件,不返回文件數據,客戶端使用本地緩存,狀態碼為304。

image

根據上述以及圖中所示,狀態為304的請求要比狀態為200的請求的數據量小很多,因為304只需要返回響應頭,並不需要返回整個文件,所以只需要幾字節就可以了,這樣能夠節省大量的網絡帶寬,並減少了頁面的渲染時間。


免責聲明!

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



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