HTTP狀態碼:304 Not Modified
如果客戶端發送了一個帶條件的GET請求且該請求已被允許,而文檔的內容(自上次訪問以來或者根據請求的條件)并沒有改變,則服務器應當返回這個狀態碼。304響應禁止包含消息體,因此始終以消息頭后的第一個空行結尾。
該響應必須包含以下的頭信息:
Date,除非這個服務器沒有時鐘。假如沒有時鐘的服務器也遵守這些規則,那么代理服務器以及客戶端可以自行將Date字段添加到接收到的響應頭中去(正如RFC2068中規定的一樣),緩存機制將會正常工作。
ETag和/或Content-Location,假如同樣的請求本應返回200響應。
Expires,Cache-Control,和/或Vary,假如其值可能與之前相同變量的其他響應對應的值不同的話。
假如本響應請求使用了強緩存驗證,那么本次響應不應該包含其他實體頭;否則(例如,某個帶條件的GET請求使用了弱緩存驗證),本次響應禁止包含其他實體頭;這避免了緩存了的實體內容和更新了的實體頭信息之間的不一致。
假如某個304響應指明了當前某個實體沒有緩存,那么緩存系統必須忽視這個響應,并且重復發送不包含限制條件的請求。
假如接收到一個要求更新某個緩存條目的304響應,那么緩存系統必須更新整個條目以反映所有在響應中被更新的字段的值。