浏览器怎么判断你输的是网址还是搜索词?

地址栏里输入的内容,浏览器要先判断:这是一个网址,还是一个搜索词。判断对了就直接打开网站,判断错了要么打不开,要么被送去搜索页。

地址栏早就不只是填网址的地方,它同时是搜索框。输入一串字符之后,浏览器要做一次猜测:按网址处理,还是按搜索词处理。

第一层看形状。带协议头、带斜杠、带点、看起来像主机名的输入,优先按网址处理;带空格、是完整句子、明显在提问的,优先当搜索词。这是规则判断,速度很快。

第二层是实际试一次。浏览器把候选当作主机名做一次域名解析,走一遍第 31 期讲的解析流程:能解析出地址,就按网址打开;解析失败,就退回搜索。不同浏览器的尝试顺序不一样,但思路相同。

这就解释了一个常见现象:输入一个单词,有时打开的是同名网站,有时直接跳到搜索结果——取决于这个词是不是一个已经注册的域名。也是第 178 期讲的 localhost 能直接用的原因:它虽然在公网根区里查不到,但本机就能解析。

对使用者来说,这个判断偶尔会带来意外:内网主机名被当成搜索词送出去,或者少打一个字母就进了别人的站。地址栏不会告诉你它选了哪条路,只给结果。