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