Domain-Name-System
儘管 HTTP 資源顯示為“記憶體”,為什麼 Firefox 仍然與伺服器建立連接?
我對 Firefox 顯示載入資源的方式感到困惑,
cached
但隨後我可以看到瀏覽器為域名發出新的 DNS 查詢並再次聯繫 HTTP 伺服器。下面是此行為的一個簡單範例。我訪問了https://example.com然後重新載入網頁。正如預期的那樣,載入的資源顯示為
cached
。但是,與此同時,我在後台執行 tcpdump 並註意到瀏覽器example.com
再次發出 DNS 查詢,並在獲得 DNS 響應後連接到 HTTP 伺服器。
Firefox 已記憶體您的對象,並正在使用源伺服器*重新驗證該對象。*您可以告訴這一點,因為它發送了
If-Modified-Since:
和Cache-Control:
請求標頭。Firefox 通常會在兩種情況下重新驗證記憶體的對象:
- 記憶體的對像是陳舊的,由先前記憶體對象時與對像一起發送的
Cache-Control:
和響應標頭確定。Expires:
- 你點擊重新載入。
您可以看到 Web 伺服器發送了
304 Not Modified
響應,因此 Firefox 提供了現有的記憶體對象。HTTP 記憶體會變得相當複雜。要了解所有相關資訊,請花一個晚上學習RFC 7234。