URL结构:小写VS大写

URL Structure: Lower case VS Upper case

提问人:Code Lover 提问时间:11/22/2012 更新时间:11/22/2020 访问量:54364

问:

当我浏览一些网站时,我只是在脑海中触发了它们在 url 中具有大写和小写组合之类的东西http://www.domain.com/Home/Article

现在,据我所知,我们应该始终在 url 中使用小写字母,但不知道技术原因。我想向您的专家学习,以澄清这个概念,为什么在 url 中使用小写字母。大写url的优点和缺点是什么。

url 小写

评论

0赞 Hugo 5/23/2017
网络上一些最大的网站甚至不关注或这样做。并不是真正被认为是最佳实践的东西。
0赞 showdev 11/20/2019
供参考:谷歌网站站长趋势分析师约翰·穆勒(John Mueller)说:“URL是区分大小写的,但你可以选择任何你想要的大小写。
0赞 TylerH 5/28/2021
这回答了你的问题吗?URL 应该区分大小写吗?

答:

52赞 John Dvorak 11/22/2012 #1

域部分不区分大小写。 工程。您可以根据需要添加大写字母,但通常没有理由这样做,并且如下面的评论所述,可能会损害您的 SEO 排名。GoOgLe.CoM

路径部分区分大小写,是否区分大小写,具体取决于服务器环境和服务器。通常,Windows 计算机不区分大小写,而 Linux 计算机区分大小写。这意味着您应该坚持使用小写字母,否则您可能会引入一个很难找到的错误(不匹配的情况,在开发服务器上无关紧要)。

查询字符串部分按原样可供服务器使用。您可以根据需要轻松使用混合大小写,或丢弃大小写 ()。这也意味着使用 base64 编码的密钥起作用。但是,您不能指望用户正确键入该内容。toLowerCase(...)

哈希部分(称为“片段标识符”)仅对客户端代码可用,而对服务器不可用。Javascript 可以随心所欲地区分大小写,浏览器也是如此。 将滚动到具有 ID 的元素,但不会。url#aaurl#A

评论

7赞 oenpelli 8/1/2013
从SEO的角度来看,你应该使用全部小写,因为谷歌会将 www.domain.com/Home/Article 和 www.domain.com/home/article 视为两个不同的页面,这将稀释他们的搜索排名。
2赞 Daniel W. 6/15/2016
“路径部分区分大小写,” - 它始终区分大小写。并且是不同的 URL,无论使用哪种服务器软件。/Home/home
1赞 Daniel W. 6/15/2016
URL 始终区分大小写,但可能被视为不区分大小写。请阅读 http/html/url/uri 规范 w3.org/TR/WD-html40-970708/htmlweb.html
1赞 Daniel W. 6/15/2016
片段标识符 (“#hashtag”) 对服务器不可用,因为它不是 HTTP 协议的一部分。
1赞 Daniel W. 6/15/2016
@JanDvorak 片段标识符是 URI 的一部分,但不是 HTTP 协议的一部分。URI 不仅 http://...它也可以是 irc://...等。
13赞 a gorsky 10/23/2013 #2

我知道你问的是技术原因,但从用户体验的角度来看,这也值得考虑。

假设您有一个带有大写字符的 URL,并且出于论据的考虑,该 URL 已在印刷媒体上分发。当用户在他们的浏览器中输入该 URL 时,他们很可能被迫匹配该大小写(或者如果您的 Web 服务器区分大小写,则被迫匹配指定的大小写),最终您给了他们更多的工作要做,因为他们也必须考虑大小写。毕竟,他们不知道您的服务器是否区分大小写,并且他们过去可能遇到过区分大小写的 Web 服务器的 404。

如果您的服务器区分大小写,并且您使用的是混合大小写的 URL,则为用户提供了更大的空间来错误键入 URL。此外,假设您有 URL www.example.com/Contact。很容易混淆大写和小写的“c”(特别是如果它是用手写复制的),如果用户忽略这一点并使用错误的大小写,他们可能永远无法访问您的内容。

考虑到所有这些,请考虑 www.example.com/News/Articles/FreeIceCreamForAll。在键盘上,这并不难,但在移动设备上考虑这一点,输入会非常繁琐。

如果用户想要从地址栏中写下 URL,反之亦然。他们可能觉得他们需要与案例相匹配,最终给他们更多的工作要做,并增加出错的可能性。

总结;保持 URL 小写。

-19赞 Clive Williams 3/12/2014 #3

关于此问题的安全方面:

实际上,混合使用大写和小写是有充分安全理由的。

它具有迷惑和阻止攻击者的效果!

在人类对话中,人们很容易混淆大写和小写的用法。

如果“标识符、密码或 url”包含大写和小写,人类就无法清晰地“说出”单词。

这有助于确保站点子部分的数据或密码的安全性,这些子部件是作为站点或其数据的“自动访问”部分的锁定或安全子部分的一部分提供的。

它类似于 NOT USING JSON。

JSON是“人类可读的文本”,因此JSON只是给所有攻击者(包括政府,谷歌等窃取您的想法和数据)......他们需要了解的几乎所有关于数据的信息......通过使用私人定制的非常快速的“二进制协议”来混淆它们要安全得多 - 使用您自己的“不可知的数据结构”......但要小心,因为实际上有可能混淆你自己或你自己的开发团队。

您的所有安全层和协议都必须“妥善管理”,以避免混淆。

因此,通过简单地使用完全非常规的系统,可以提高人类攻击者(和一些机器人)的站点和数据安全性(即,为什么有人想要使用“标准安全协议”,而通过一些简单的重量级先验计算,它们都可以很容易地被破解)。

只是“加盐和散列”一切 - 再加上一些额外的额外定制安全性 - 这只是常识!

结论:以上所有答案都非常清晰和正确 - 但你也可以愉快地利用这些知识来迷惑潜在的攻击者。

评论

10赞 John Dvorak 5/9/2014
通过隐蔽性实现安全性是安全性差的。此外,“攻击者”不会使用语音进行交流。即使您忽略了更容易传输的情况,电子邮件也更加可靠。
0赞 Clive Williams 12/24/2016
非常感谢您的负分(whaaaa)......但是我会坚持我的枪和我的答案,因为即使是 GCHQ 也有历史上的军事编码信息,他们仍然无法解码只是坐在二战的纯文本中,>>>因为 ALICE 和 BOB 使用了“他们独有的”加密算法,这些算法不是标准的,并且他们已经预先同意了,所以即使是现在,EVE(拥有 GCHQ 的所有功能)也无法解密他们的信息。
3赞 sba 10/30/2017
URL 应该是人类可读的。如果您认为用户能够访问您的网站是一个安全问题,请不要在 Web 上发布。
0赞 Clive Williams 10/31/2017
我们将不得不不同意,因为在 Inferix Sentient AI,最重要的是我们主要是非人类(AI 实体)可以访问,因此我参考了预先商定的非标准协议。我们需要我们最有头脑的人类(在切尔滕纳姆)的访问,但对不在群体中的人类没有访问权 - 所以使用复杂的规则和使用非标准协议对我们来说是最好的 - 所以(对我们来说)它通常是关于停止访问并制造“人类盲巷”的访问。直接进入你的思想或你的工作场所的“蜂巢思维”是你想要阻止的东西 - 但有时允许“你信任的人”!
2赞 Bart 1/19/2018
原创思维和不错的文章。从技术上讲,我必须同意“隐蔽性安全”是低级形式,所以这 - 简单地:) - 不是要走的路。将钥匙放在门垫下不是专业软件解决方案的方式。但请留下这个答案,因为这个想法——虽然不是微不足道的——可能会在其他人身上萌芽。
18赞 Dirigible 11/3/2015 #4

我将不得不不同意所有关于这一点的既定智慧,所以我可能会被否决,但是:

如果将所有大小写混合的 URL 重定向到大小写正确的 URL,则可以解决上述所有问题。因此,这个论点似乎来自传统和偏好。URL 的重点是要有一个用户友好的页面表示,如果你的 URL 对大写更友好,为什么不使用它呢?比较:

moviesforyoutowatch.com/batman-vii-the-dark-knight-whatevers MoviesForYouToWatch.com/Batman-VII-The-Dark-Knight-Whatevers

I find the mixed case version superior for the purpose. If there's a technical reason that can't be solved with a lower-case compare and redirect, please share it.

评论

7赞 Ross 3/7/2017
The problem with mix case is social media. If you care about Facebook likes for example. Facebook shared url is case sensitive. If for some reason, someone shared your url in lowercase, that's a different URL. That is why the safe approach is to stick to all lowercase rather than mixed case. Besides, users don't look at a URL. Users only click links.
3赞 Gqqnbig 1/22/2018
If for some reason, someone shared your url in UPPERCASE, that's a different URL. That is why the safe approach is to stick to all UPPERCASE rather than mixed case.
2赞 Vad 9/6/2018
If for some reason, someone shared your url in KEBABCASE, that's a different URL. That is why the safe approach is to stick to all KEBABCASE rather than mixed case
1赞 无名小路 7/27/2021
If for some reason, someone shared your url in SNAKE_CASE, that's a different URL. That is why the safe approach is to stick to all SNAKE_CASE rather than mixed case
1赞 Dimi Ansari 8/2/2021
If for some reason, someone shared your url in CamelCase, that's a different URL. That is why the safe approach is to stick to all CamelCase rather than mixed case