Http

If-Modified-Since vs. If-None-Match

  • February 16, 2021

通常的瀏覽器條件請求如下所示:

獲取 /i/yahoo.gif

HTTP/1.1 主機:us.yimg.com

If-Modified-Since: 2006 年 12 月 12 日星期二 03:03:59 GMT

如果-無匹配:“10c24bc-4ab-457e1c1f”HTTP/1.1

但是 If-Modified-Since 和 If-None-Match 之間的關係是什麼。或者?和?因此,如果其中任何一個“失敗”,是否會發送新版本?

http://www.ietf.org/rfc/rfc2616.txt

13.3.4 何時使用實體標籤和最後修改日期的規則

  • HTTP/1.1 源伺服器,在接收到包含 Last-Modified 日期(例如,在 If-Modified-Since 或 If-Unmodified-Since 頭欄位中)和一個或多個實體標籤(例如,在If-Match、If-None-Match 或 If-Range 頭欄位)作為記憶體驗證器,不得返回 304(未修改)的響應狀態,除非這樣做與請求中的所有條件頭欄位一致。

  • HTTP/1.1 記憶體代理,在接收到包含 Last-Modified 日期和一個或多個實體標籤作為記憶體驗證器的條件請求時,不得向客戶端返回本地記憶體響應,除非該記憶體響應與所有請求中的條件頭欄位。

    • 注意:這些規則背後的一般原則是 HTTP/1.1 伺服器和客戶端應該在​​其響應和請求中傳輸盡可能多的非冗餘資訊。接收此資訊的 HTTP/1.1 系統將對它們接收的驗證器做出最保守的假設。

引用自:https://serverfault.com/questions/307909