我注意到

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是否应该区分大小写?


当前回答

老问题,但我在这里绊了一下,所以为什么不尝试一下呢,因为这个问题寻求的是不同的观点,而不是一个确定的答案。

w3c可能有它的建议-我很关心-但想要重新考虑,因为问题在这里。

为什么w3c认为域名是不区分大小写的,并且在后面留下不区分大小写的内容?

我认为基本原理是URL的域部分是由用户手动输入的。 超文本之后的所有内容都将由机器(浏览器和后面的服务器)解析。

机器可以比人类更好地处理不区分大小写的问题(不是技术上的:))。

但问题是,仅仅因为机器可以处理,就应该这样做吗?

我的意思是命名和访问位于hereIsTheResource和hereIsTheResource的资源的好处是什么?

横向图比驼色图更难读,驼色图更容易读。 人类可读(包括技术类)

以下是我的观点:-

资源路径位于编程结构的中间位置,有时靠近浏览器后面的终端用户。

你的URL(不包括域名)应该不区分大小写,如果你的用户希望触摸它或键入它等等。在开发应用程序时,应该尽量避免让用户键入路径。

你的URL(不包括域名)应该区分大小写,如果你的用户从来不会手动输入它。

结论

Path应该区分大小写。我的观点倾向于区分大小写。

其他回答

为了可读性,所有“不敏感”都加粗。

根据RFC 4343,域名不区分大小写。URL的其余部分通过GET方法发送到服务器。这可能区分大小写。

以这个页面为例,stackoverflow.com接收GET字符串/questions/7996919/should-url-be-大小写敏感,向浏览器发送HTML文档。Stackoverflow.com是大小写不敏感的,因为它为/QUEStions/7996919/ should -url-be大小写敏感生成了相同的结果。

另一方面,维基百科是区分大小写的,除了标题的第一个字符。url https://en.wikipedia.org/wiki/Case_sensitivity和https://en.wikipedia.org/wiki/case_sensitivity指向同一篇文章,但https://en.wikipedia.org/wiki/CASE_SENSITIVITY返回404。

问题是url是否应该区分大小写?

我认为区分大小写的URL没有用处,也没有很好的实践。这很愚蠢,很糟糕,应该在任何时候都避免。

只是为了支持我的观点,当有人问什么URL,你怎么解释URL的字符是大写还是小写?这是无稽之谈,没有人会告诉你不是这样的。

取决于主机操作系统。托管在Windows上的站点往往不区分大小写,因为底层文件系统不区分大小写。托管在Unix类型系统上的站点往往是区分大小写的,因为它们的底层文件系统通常是区分大小写的。URL的主机名部分总是不区分大小写的,路径的其余部分是不同的。

url应该不区分大小写,除非有很好的理由说明它们不应该区分大小写。

这不是强制性的(它不是RFC的任何一部分),但它使url的通信和存储更加可靠。

如果我在网站上有两页:

http://stackoverflow.com/ABOUT.html

and

http://stackoverflow.com/about.html

它们有何不同?也许有人写的是“大喊风格”(大写)——但从IA的角度来看,这种区别永远不应该通过URL的变化来区分。

此外,在Apache中很容易实现这一点-只需从mod_spelling使用CheckSpelling On。

根据W3的“HTML和url”,它们应该:

可能有url,或者url的一部分,大小写不重要,但是 识别这些可能并不容易。用户应该始终考虑到这一点 url区分大小写。