在 Android 端 Chrome 瀏覽器中,在搜索引擎競(jìng)爭(zhēng)中 Google Search 存在天然的優(yōu)勢(shì)。這不僅在于 Google Search 是 Chrome 的默認(rèn)搜索引擎,而且還專門為 Google Search 進(jìn)行了性能優(yōu)化。程序員 Daniel Aleksandersen 近日探究了 Chromium 項(xiàng)目的源代碼,發(fā)現(xiàn)這個(gè)對(duì)其他搜索引擎不公平的地方。
Chromium 項(xiàng)目是由Google、其他企業(yè)及個(gè)人貢獻(xiàn)者共同開發(fā)的,但是整個(gè)項(xiàng)目由Google管理和控制。Aleksandersen 在探究其他東西的時(shí)候,偶然在代碼中發(fā)現(xiàn)了 PreconnectToSearch 功能。該功能在啟用之后,會(huì)會(huì)預(yù)先打開并保持與默認(rèn)搜索引擎的連接。
預(yù)連接功能會(huì)解析域名,并協(xié)商和設(shè)置了與服務(wù)器的安全連接。所有這些事情都需要時(shí)間,它們必須在搜索引擎能夠接收用戶的搜索查詢之前發(fā)生。搶占這些步驟可以在緩慢的網(wǎng)絡(luò)連接上節(jié)省十幾秒,在快速連接上節(jié)省半秒。
這種優(yōu)化可以為Google的客戶帶來(lái)不錯(cuò)的性能提升。當(dāng)然,前提是連接只需要微不足道的處理能力和網(wǎng)絡(luò)帶寬。如果用戶不打算搜索網(wǎng)絡(luò),提前設(shè)置連接可能會(huì)造成浪費(fèi),或減慢其他網(wǎng)頁(yè)的加載速度。
不過這項(xiàng)功能有個(gè)小問題,那就是 Chromium 會(huì)檢查默認(rèn)的搜索引擎設(shè)置,只有當(dāng)它被設(shè)置為 Google Search 時(shí)才會(huì)啟用該功能。這種優(yōu)惠待遇意味著沒有其他搜索引擎能在加載搜索結(jié)果的時(shí)間上與Google搜索競(jìng)爭(zhēng)。每個(gè)競(jìng)爭(zhēng)者都必須等到用戶開始輸入搜索查詢后,Chrome 才會(huì)建立連接。
與沒有預(yù)連接的競(jìng)爭(zhēng)對(duì)手相比,該功能使Google搜索在提供搜索結(jié)果方面擁有 80% 的領(lǐng)先優(yōu)勢(shì)。相關(guān)代碼的 Chromium 變更日志照亮了一些關(guān)于為什么該功能以這種方式工作的原因。以下評(píng)論伴隨著限制該功能只在Google域名上工作的評(píng)論:“這個(gè)功能允許我們?cè)贕oogle上進(jìn)行實(shí)驗(yàn),而不可能對(duì)非Google的DSE產(chǎn)生問題。這將有望防止與其他搜索引擎出現(xiàn)問題或倒退”。
Google擔(dān)心,其他搜索引擎可能無(wú)法應(yīng)對(duì)這一功能所導(dǎo)致的連接數(shù)量增加。這是一個(gè)合理的擔(dān)憂。連接數(shù)的意外增加可能會(huì)使沒有準(zhǔn)備的接收者不知所措。這個(gè)潛在的問題并不能改變Google給自己帶來(lái)不公平競(jìng)爭(zhēng)優(yōu)勢(shì)的事實(shí)。
如果他們想,Chromium可以用更好的方式解決這個(gè)問題。其他搜索引擎可以通過對(duì)其OpenSearch Descriptions(OSD)的擴(kuò)展來(lái)選擇加入或退出。OSD是搜索引擎提供給網(wǎng)絡(luò)瀏覽器的一個(gè)配置文件,告訴它們?nèi)绾螌⑺鼈冊(cè)O(shè)置為瀏覽器中的搜索提供者。Chrome 也可以使用 Well-Known URI(RFC 5785)來(lái)查詢搜索引擎是否要選擇加入或退出預(yù)連接。