我注意到
HTTP://STACKOVERFLOW.COM/QUESTIONS/ASK
and
http://stackoverflow.com/questions/ask
两者都可以工作-实际上前一个转换为小写字母。
我认为这对用户来说是有意义的。
如果我看谷歌,那么这个URL工作正常:
http://www.google.com/intl/en/about/corporate/index.html
但是这个带ABOUT的不能用:
http://www.google.com/intl/en/ABOUT/corporate/index.html
URL是否应该区分大小写?
我不喜欢撞旧文章,但因为这是对这个特定问题的第一个回应,我觉得有必要澄清一些事情。
@Bhavin Shah回答说url的域名部分是不区分大小写的,所以
http://google.com
and
http://GOOGLE.COM
and
http://GoOgLe.CoM
都是一样的,但域名部分之后的所有内容都是区分大小写的。
所以…
http://GOOGLE.COM/ABOUT
and
http://GOOGLE.COM/about
是不同的。
注意:我说的是“技术上”,而不是“字面上”在很多情况下,大多数情况下,服务器的设置处理这些项目相同,但也有可能设置他们,所以他们不处理相同。
不同的服务器处理方式不同,在某些情况下,它们必须区分大小写。在许多情况下,查询字符串值是被编码的(例如Session id或Base64编码的数据,作为查询字符串值传递)这些项本质上是区分大小写的,因此服务器在处理它们时必须区分大小写。
因此,要回答这个问题,服务器在获取这些数据时“应该”区分大小写吗?答案是“是的,绝对是”。
当然,并不是所有的内容都需要区分大小写,但是服务器应该知道区分大小写的含义以及如何处理这些大小写。
@Hart Simha的评论基本上说了同样的事情。在我发布之前我错过了它,所以我想在应得的地方给予赞扬。