在Android端Chrome浏览器中,在搜索引擎竞争中GoogleSearch存在天然的优势。这不仅在于GoogleSearch是Chrome的默认搜索引擎,而且还专门为GoogleSearch进行了性能优化。程序员DanielAleksandersen近日探究了Chromium项目的源代码,发现这个对其他搜索引擎不公平的地方。
Chromium项目是由Google、其他企业及个人贡献者共同开发的,但是整个项目由Google管理和控制。Aleksandersen在探究其他东西的时候,偶然在代码中发现了PreconnectToSearch功能。该功能在启用之后,会会预先打开并保持与默认搜索引擎的连接。
预连接功能会解析域名,并协商和设置了与服务器的安全连接。所有这些事情都需要时间,它们必须在搜索引擎能够接收用户的搜索查询之前发生。抢占这些步骤可以在缓慢的网络连接上节省十几秒,在快速连接上节省半秒。
这种优化可以为Google的客户带来不错的性能提升。当然,前提是连接只需要微不足道的处理能力和网络带宽。如果用户不打算搜索网络,提前设置连接可能会造成浪费,或减慢其他网页的加载速度。
不过这项功能有个小问题,那就是Chromium会检查默认的搜索引擎设置,只有当它被设置为GoogleSearch时才会启用该功能。这种优惠待遇意味着没有其他搜索引擎能在加载搜索结果的时间上与Google搜索竞争。每个竞争者都必须等到用户开始输入搜索查询后,Chrome才会建立连接。
与没有预连接的竞争对手相比,该功能使Google搜索在提供搜索结果方面拥有80%的领先优势。相关代码的Chromium变更日志照亮了一些关于为什么该功能以这种方式工作的原因。以下评论伴随着限制该功能只在Google域名上工作的评论:“这个功能允许我们在Google上进行实验,而不可能对非Google的DSE产生问题。这将有望防止与其他搜索引擎出现问题或倒退”。
Google担心,其他搜索引擎可能无法应对这一功能所导致的连接数量增加。这是一个合理的担忧。连接数的意外增加可能会使没有准备的接收者不知所措。这个潜在的问题并不能改变Google给自己带来不公平竞争优势的事实。
如果他们想,Chromium可以用更好的方式解决这个问题。其他搜索引擎可以通过对其OpenSearchDescriptions(OSD)的扩展来选择加入或退出。OSD是搜索引擎提供给网络浏览器的一个配置文件,告诉它们如何将它们设置为浏览器中的搜索提供者。Chrome也可以使用Well-KnownURI(RFC5785)来查询搜索引擎是否要选择加入或退出预连接。