HTTP 304 狀態碼


304 Not Modified

如果客戶端發送了一個帶有條件的GET 請求且該請求已被允許,而文件的內容(自上次訪問以來或根據請求的條件)並沒有改變,則伺服器應傳回這個狀態碼。 304回應禁止包含訊息體,因此始終以訊息頭後的第一個空行結尾。

該回應必須包含以下的頭資訊:

Date,除非這個伺服器沒有時鐘。假如沒有時鐘的伺服器也遵守這些規則,那麼代理伺服器以及客戶端可以自行將 Date 欄位加入接收到的回應頭中去(如RFC 2068中規定的一樣),快取機制將會正常運作。

ETag 和/或 Content-Location,假如同樣的請求本應回傳200回應。

Expires, Cache-Control,和/或Vary,假如其值可能與其他先前相同變數的回應對應的值不同的話。

假如本回應請求使用了強快取驗證,那麼本次回應不應該包含其他實體頭;否則(例如,某個帶條件的GET 請求使用了弱快取驗證),本次回應禁止包含其他實體頭;這避免了快取了的實體內容和更新了的實體頭資訊之間的不一致。

假如某個304回應指明了當前某個實體沒有緩存,那麼快取系統必須忽視這個回應,並且重複發送不包含限制條件的請求。

假如接收到一個要求更新某個快取條目的304回應,那麼快取系統必須更新整個條目以反映所有在回應中被更新的欄位的值。