Domain-Name-System

儘管 HTTP 資源顯示為“記憶體”,為什麼 Firefox 仍然與伺服器建立連接?

  • July 29, 2020

我對 Firefox 顯示載入資源的方式感到困惑,cached但隨後我可以看到瀏覽器為域名發出新的 DNS 查詢並再次聯繫 HTTP 伺服器。

下面是此行為的一個簡單範例。我訪問了https://example.com然後重新載入網頁。正如預期的那樣,載入的資源顯示為cached。但是,與此同時,我在後台執行 tcpdump 並註意到瀏覽器example.com再次發出 DNS 查詢,並在獲得 DNS 響應後連接到 HTTP 伺服器。

dd 這是預期的行為還是我錯過了什麼?感謝您閱讀我的問題<3

Firefox 已記憶體您的對象,並正在使用源伺服器*重新驗證該對象。*您可以告訴這一點,因為它發送了If-Modified-Since:Cache-Control:請求標頭。

Firefox 通常會在兩種情況下重新驗證記憶體的對象:

  1. 記憶體的對像是陳舊的,由先前記憶體對象時與對像一起發送的Cache-Control:和響應標頭確定。Expires:
  2. 你點擊重新載入。

您可以看到 Web 伺服器發送了304 Not Modified響應,因此 Firefox 提供了現有的記憶體對象。


HTTP 記憶體會變得相當複雜。要了解所有相關資訊,請花一個晚上學習RFC 7234

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