ChrAlpha's Blog

Thumbnail-%E5%85%B3%E4%BA%8E%E6%B5%8F%E8%A7%88%E5%99%A8%E9%9A%90%E8%97%8F%20https%20%E4%B8%8E%20www%20%E4%B8%80%E4%BA%8B

关于浏览器隐藏 https 与 www 一事

2020-02-29·技术向

在 Firefox Nightly 75 中,火狐也不再默认显示地址栏中的 https://www. 。而浏览器另一巨头 Chrome 早在 Chrome 69 开始尝试,直到 Chrome 79 最终敲定,甚至无法在通过原来的 chrome://flags 恢复显示。Chrome 和 Firefox 作为目前主流现代浏览器,相继做出了这一改动,为什么?

截止本文写作时,Chrome 桌面端最新正式版为 Chrome 80.0,Firefox 最新正式版为 Firefox 73.0.1 。

为什么这么做?

谷歌的尝试

其实 Chrome 在隐藏地址栏中的 https://www. 这条路上已经走过一段时间了。

如果我们把时间推回到 2018 年 9 月,早在 Chrome 69 ,谷歌就进行了隐藏 https:// 的尝试,取而代之的是一把「小锁」展示在地址栏的开端。同时谷歌也隐藏了常用默认主机名 www. 的显示(移动端对应的是 m.)。不过这还是一次超前的尝试,并没能得到推行,至少在后面 Chrome 69 Stable 稳定版的时候退回了原样。

unalted image

而到了 2019 年 8 月,升级到 Chrome 76 的用户也许发现谷歌正式实施了上述行为。https://www. 将默认不再展示在地址栏中。甚至到了 Chrome 79 ,谷歌还关闭了通过 chrome://flags 恢复显示的方案。看来谷歌已经想通隐藏确实有必要,亦或是展示不见得很有必要了。

背后的原因

其实谷歌这种做法绝非空穴来风。

在谷歌工程师 Emily Schechter 曾在 Chromium 反馈页面的 透露 中提到:

Chrome 团队一直将简易性、可用性、安全性作为衡量 UI 的标准。为了让 URL 能更好地被用户理解、移除那些容易让用户分心却并不重要的内容,我们计划从多功能框(地址栏)移除 https 和特殊子域名 www

确实,相信大多数用户根本不在意或不了解这个「HTTPS」究竟意味着什么,又是如何保护他们的。而换成一个「小锁」图标或许能更好地传达:你现在的浏览姿势是安全的。

浏览器毕竟是面向普罗大众的产品,这种决定在更多层面上都更合适。

网页超文本应用技术工作小组(WHATWG),指定的大量 Web 规范中,就包含针对 URL 的相关规范。其中 4.8.1. Simplify non-human-readable or irrelevant components 明确指出应「简化非可读或不相关组件」。

unalted image

所以这种行为并非违反 URL 规范,也并非为了弱化 HTTPS 重要性。「不安全」这种更容易理解的语言才能更好的传达信息,不是吗?火狐也 表明 :许多其他浏览器都已经迈出这一步了,我们也应该跟上,提高可读性。

unalted image

用户在复制 URL 的时候, 浏览器会自动将 www 信息补全。而想要展示完整 URL 也十分简单:双击地址栏就好了。

如何恢复展示完整 URL?

尽管隐藏 https 比较容易理解,但是隐藏 www 就有一点别扭了。先不论 www 是否过于常见,那毕竟还是个主机名。

如果你想我一样,平时更愿意接受完整域名,也是有方法默认禁止浏览器隐藏内容,恢复展示完整域名的。

Chrome

如果你的 Chrome 版本号低于 79 ,那么是你可以通过 chrome://flags 中修改回来的。只需要禁用:

  • Omnibox UI Hide Steady-State URL Scheme
  • Omnibox UI Hide Steady-State URL Trivial Subdomains

但是 Chrome 会后台静默更新跟进版本,所以建议大家使用支持 Chrome 79 及以后的方案:安装 Suspicious Site Reporter 这个官方插件。Chrome 针对这个扩展做了降级处理,安装后 httpswww 就又回来了。

unalted image

Firefox

Firefox 目前正式版甚至是 Beta 版都未隐藏 httpswww ,仅仅是 Firefox Nightly 75 做出了如此改动。所以你可以选择降级观望,或者:

  1. 从地址栏进入 about:config
  2. 定位到 browser.urlbar.trimURLsbrowser.urlbar.update1.view.stripHttps
  3. 将上述选项均调为 False

之后你的 httpswww 便都回来了。

说实话我并不是很喜欢这种变化的,所以我采取了上述步骤把那些隐藏的内容重新调回来了。

可毕竟,上面提到过的,浏览器是面向大众的产品。真正会去关注这些的可能还是少数。关于各种规范、标准早已十分全面,各种文档也都尽力照顾到普通用户。只不过这部分用户,大概率是不会去读文档的(笑)。那么那些愿意读文档的少数派们就迁就一下大多数啦,反正我们也有退路。


参考链接

关于浏览器隐藏 https 与 www 一事
本文作者
ChrAlpha
发布日期
2020-02-29
更新日期
2020-03-10
转载或引用本文时请遵守 CC BY-NC-SA 4.0 许可协议,注明出处、不得用于商业用途!
CC BY-NC-SA 4.0