我们真的需要隐藏url吗?
英文原文:Do we really need to hide the URL?
DIY: 在 Chrome 的地址栏输入 chrome://flags/#origin-chip-in-omnibox,然后「启用 Origin Chip」即可体验。
Google Chrome 最近加了一个 hiding the URL in Chrome 的实验功能,地址栏只留下域名部分,听上去挺吓人的。但是 Jake Archibald 和 Nicholas Zakas 都认为这个功能很棒。既然他们都是非常聪明的人,那这个功能一定有可取之处吧,我们得再想想。
喜欢这个功能的人列出了两个主要理由:
1、安全
只显示域名部分可以让用户不再上钓鱼网站的当。举个简单的例子,钓鱼网址 Paypal.com-ripoff.ca/secure/login/customer=123456 在这种模式下会显示成 Paypal.com-ripoff.ca,这样用户更容易辨识钓鱼网站。更详细的陈述可以看 Jake 的博文。
2、更好的用户体验
URL 是服务器用来寻找网页内容的信息,普通用户根本不关心这个。实际上很多用户使用搜索,而不是 url 来进入站点。详细的阐述可以看 Nicolas 的博文。
反对者
反对者中,Jeremy Keith 提出了他的看法,用他自己的话总结就是——断头似乎可以解决头痛的问题。换言之,当我们采用某方法解决问题的时候,也许它带来了更大的麻烦。
那么,隐藏 url 的功能有没有引入新问题呢?我(作者,下同)认为有。
这个功能有是否是解决它打算解决的问题的最好方法呢?我认为不是。
先总结下我的看法:
- 这个功能没有解决安全问题,人们还是会上钓鱼网站的当。
- 有更好的办法可以加强安全性和优化用户体验。
- 这个功能还会带来副作用:
- 开发者不再重视带语义的 url。
- 用户将很难分辨有相似域名的网站。
- 这个功能的 UI 设计会引导用户错误地使用它。
安全问题
如果是为了防止用户上钓鱼网站的当,也就是防止用户以为自己在浏览A网站,其实是在浏览(故意在各方面,网址、页面样式等,和A网站做得很像 的)B网站的情况发生,我们可以採取一个更好的解决方法:当用户访问了一个曾经没有访问过的网站,并且在上面提交了包含密码信息的表单时,展示一个中间页 面告知用户站点域名、提交的内容、防钓鱼网站的警告信息,请用户确认后继续。早期的 IE 浏览器其实做过这样的功能,只是很不好用,所以后来就下掉了。
以下是我用来解释观点的示意图,顺便也秀一下我不凡的设计水平。
我认为在提交表单的时候给用户发的警告远比标识出的网站域名要显眼得多。
其实现在已经有一些类似的解决方桉了,所以难怪有一批人指责 Google 只是在找借口引导人们不再用 url,而是更多地使用搜索。
用户体验
Nicholas Zakas 说用户不需要 url(路由)信息,但它不意味着普通用户不理解路由。就好比大多数人在寄信的时候都知道该怎么写地址,因为他们知道地址是有层级结构的,先写最小粒度的楼、街,直到最大粒度的城市、国家。
在网络世界,我们同样需要好的、健壮的、可伸缩的路由机制,url 就是。我们需要优化的是用户不需要记住或打出完整的 url 就能到达想去的网站。比如当我输入 Amazon 的时候,会告诉我 www.amazon.co.uk,而不是 www.amazon.com(作者大概是个英国人)。但同等重要的是,当我想选择访问另一个站点的时候,我可以轻易做到。
我们还可以拿电子邮件做类比。我的通讯录里可能有几个叫 John Smith 的联系人,如果我是给我经常联系的那位 John Smith 写信,那我就不需要输入路由信息(此处就是完整的邮箱地址),直接选择最近的那位就可以了。但我得理解路由的规则,这样当我要给其他的 John Smith 写信时,我知道如何区分他们并做出正确的选择。
所以 Google 的这个功能带来的坏影响就是——使得用户逐渐忽视路由,之后对它的理解自然也就越来越少,同时还会使得网站开发者不再动脑筋去设置带语义的 url。
最后,这个功能的设计还会给利用地址栏进行搜索的用户造成困扰:用户会以为他在进行站内搜索。(因为这是互联网 UI 中很常见的一个模式,下图是 Amazon 部分搜索的 UI 的例子。)而实际上呢?在地址栏按下一个键后,网站的域名部分消失,这时用户才会意识到原来是做的全局搜索,之前的理解是错误的。糟糕的设计!
总的来说,这个新实验功能不是解决问题的最好办法,而且它同时还引入了新的麻烦。但是 Google 利用大量的用户实验新特性的做法是值得肯定的,其它的浏览器厂商也应该积极效彷之。