很多人都喜欢豆瓣,但是豆瓣的URL设计似乎有一些小问题。
豆瓣的URL地址大部分是以 / 结束的,这个 / 在URL地址中的本来意思是代表目录,但由于豆瓣采用了python开发的动态系统,所以,这些目录都是不存在的。
豆瓣的URL地址示例如下图:
但是在IE浏览器中,比如IE6,当输入URL地址时候,如果这个地址是曾经访问过的某地址的一部分,那么地址栏会出现URL地址自动补全提示,但是注意,IE的提示把最后的 / 给去掉了,如下图。
这时如果用键盘上下键来选择这些自动提示的地址,如果这些目录是真实存在的话,那么web服务器会做出自动转向,以保证能访问到正确的目录,但是由于豆瓣在处理URL时没有处理这个情况,那么就会出现如下的错误了。
这样的错误提示,对于普通用户来讲简直明显太深奥了,普通用户不会明白他们做错了什么,为什么会出现这样的情况。出于用户友好的考虑,网站程序应该自己处理这个情况,比如自动纠正这种情况,而不是把这个错误抛给用户去处理。
同样的情况,IMDB就对这种错误做了自动更正,比如在浏览器地址栏输入http://www.imdb.com/title/tt0399295这个地址,会自动更正到http://www.imdb.com/title/tt0399295/,(IMDB的这些目录也是不存在的,是使用了URL地址静态化处理)。
update:
豆瓣的系统似乎对部分URL进行了自动更正的处理,比如输入http://www.douban.com/subject/1053672,会自动更正到http://www.douban.com/subject/1053672/,(通过Firefox的Live HTTP Headers扩展可以看到确实是收到了豆瓣服务器的301转向回应),但这种处理为什么没有在全站使用呢?