網路管理員專用的 Chrome 私密預先擷取 Proxy

為了改善使用者的網頁載入時間,Chrome 有時會在使用者點選連結前,預先擷取 Google 搜尋結果網頁和其他參與網站上的連結。如要進一步瞭解這項功能,請參閱這篇文章,從技術層面的說明。

這項功能需要使用 CONNECT Proxy,從需要預先擷取的網站中隱藏使用者的 IP 位址。因而將連線建立作業移出網路管理員的檢視畫面。

此外,我們也瞭解網路管理員可能需要篩選內容。因此我們設計了一種機制,只要使用者按一下預先擷取的連結,網路管理員就能繼續保有效力。

內容篩選

為保護使用者隱私,Chrome 不會在預先擷取連結時發出任何可觀察的 DNS 查詢。如果使用者前往預先擷取的連結,系統就會從本機快取中擷取網頁資源,而不會執行可觀測的 DNS 查詢。此外,當使用者前往預先擷取的連結時,內容篩選功能可能無法正常運作。

為了讓網路管理員能夠篩選這些預先擷取的瀏覽內容,我們設計了信號機制,指示 Chrome 在使用者點選預先擷取的連結時發出 DNS 查詢。這項 DNS 查詢會同時進行,就像發生預先擷取作業的情況一樣,管理員也能藉此篩選內容。Chrome 會暫停從快取載入預先擷取的資源,直到第二次 DNS 查詢成功為止。如果連線失敗,Chrome 就不會使用預先擷取的資源,而是改以平常的方式載入網頁。請注意,由於 Chrome 必須等待 DNS 查詢完成,因此會對使用者造成效能降低。

信號機制詳細資料

如果使用者未啟用網頁預先載入功能,當 Chrome 啟動或網路介面有變更時,Chrome 會以非同步方式發出 dns-tunnel-check.googlezip.net 的 DNS 查詢。

dns-tunnel-check.googlezip.net 檢查的可能結果如下:

  • 如果回應是 NXDOMAINSERVFAIL,或是系統傳回 NOERROR 回應代碼,但不含 AAAAA 記錄,Chrome 會瞭解網路管理員需要查看預先擷取網頁的瀏覽權限 (請參閱「預檢模式」一節)。
  • 如果回應是任何其他值,Chrome 會直接使用預先擷取的資源,當使用者瀏覽預先擷取的網頁時,不會另外發出任何 DNS 查詢。

系統會等到 Chrome 重新啟動或網路介面變更後再觸發「dns-tunnel-check.googlezip.net」新的 DNS 查詢,而且結果可能會有所不同。

預檢模式

在這個模式中,Chrome 會先針對相關網域發出 DNS 查詢,並等待回應傳回,然後才瀏覽至透過私人預先擷取 Proxy 預先擷取的網頁:

  • 如果回應包含一組非空白的 IP 位址,Chrome 會使用預先擷取的資源繼續瀏覽。
  • 如果回應是 REFUSED (偏好) 或 NXDOMAIN,Chrome 將不會繼續瀏覽,而是會顯示相關的 DNS 錯誤頁面。