在 tab 上放了一陣子的連結,忘記是哪邊看到的,在講 Chromium 系列瀏覽器會針對 Google Search Engine 最佳化:「Google’s unfair performance advantage in Chrome」。
作者發現 Chromium 瀏覽器會預先開 HTTPS 連線連到搜尋引擎,這樣可以大幅降低建立 HTTPS 連線時所需要的時間,包括了 DNS 查詢、TCP handshake 與 TLS handshake:
I was looking for something else when I stumbled upon a feature called
PreconnectToSearch
. When enabled, the feature preemptively opens and maintains a connection to the default search engine.
問題在於這個功能只開給 Google Search 使用:
There’s just one small catch: Chromium checks the default search engine setting, and only enables the feature when it’s set to Google Search.
在 search_engine_preconnector.cc (HEAD 版本) 這邊可以看到這段程式碼:
// Feature to limit experimentation to Google search only. const base::Feature kPreconnectToSearchNonGoogle{ "PreconnectToSearchNonGoogle", base::FEATURE_DISABLED_BY_DEFAULT}; } // namespace features
作者有提到,的確這個功能會對 search engine 有不小的衝擊,但可以透過擴充 OpenSearch Descriptions 或是 Well-Known URI 的方式提供,現在這樣寫死在程式碼裡面完全就是不公平競爭。