304 Not Modified

last modified & Etag

http server在 respond的時候,附上last-modified或是ETag header,這兩個擇一就好。

  • last modifeid: 這個respond內容上次修改的時間
  • Etag: stand for "entity tag", 通常用md5計算hash或crc32算checksum,用此辨識內容有沒有改變

這種cache機制作用在於減少respond的內容,每一次browser request會附上if-modify-since或if-none-match。

if-modify-since會跟last-modified比較,簡單來說就是browser問server,這個時間之後還有改變內容嗎?server比較一下這兩個值,如果last-modified>if-modify-since表示內容更改過,就會回傳新的資料,else就會回傳304 not modified。

if-none-match會跟Etag比較,一樣表示內容沒變,會回傳304,else回傳新內容。

reference