Web技術基礎
瀏覽器把先前收到之影像的回應中所附的ETag值放進If-None-Match標頭,再次請求該影像。伺服器上的影像沒有改變時,伺服器的回應下列何者正確?
- A回傳200 OK,即使內容與先前相同,也再次送出影像的完整本文
- B回傳304 Not Modified而不送本文,瀏覽器使用已保存的影像
- C回傳404 Not Found,讓瀏覽器刪除已保存的舊影像並重新取得
查看答案與解析
正確答案:B. 回傳304 Not Modified而不送本文,瀏覽器使用已保存的影像
ETag是表示資源特定版本的識別碼。瀏覽器把ETag放進If-None-Match,送出「若自這個版本以來有改變就請送來」的條件式請求,若沒有改變,伺服器就回傳沒有本文的304 Not Modified。如此只需確認用的1次往返,不必重送影像資料。若有改變,則以200 OK回傳新的本文與新的ETag。在Cache-Control的max-age所定的期間內,瀏覽器連這個確認都不做,直接使用已保存的內容。
- A. 影像沒有改變,因此不需要重送本文。避免重送正是條件式請求的目的。
- B. 正確。304表示「沒有改變,可以使用已保存的內容」。
- C. 404是表示找不到資源的代碼,但影像是存在的。