当我浏览某些网站时,只是在我的脑海中触发了他们在网址中使用大写和小写的组合,例如http://www.domain.com/Home/Article
现在据我所知,我们应该始终在url中使用小写但不知道技术原因。我想向您学习专家,以清除这个概念为什么在url中使用小写。大写网址的优点和缺点是什么。
答案 0 :(得分:35)
域部分不区分大小写。 GoOgLe.CoM
有效。您可以根据需要添加大写字母,但通常没有理由这样做,并且如下面的评论中所述,可能会损害您的SEO排名。
路径部分是区分大小写,具体取决于服务器环境和服务器。通常,Windows机器不区分大小写,而Linux机器区分大小写。这意味着你应该坚持使用小写,否则你可能会冒一个真正难以追捕的错误(在开发服务器上无关紧要的情况)。
查询字符串部分原样可供服务器使用。您可以根据需要随时使用混合大小写,或丢弃大小写(toLowerCase(...)
)。这也意味着使用base64编码的密钥将工作。但是,您不能指望用户正确输入。
哈希部分(称为“片段标识符”)仅对客户端代码可用,而不对服务器可用。 Javascript可以根据需要区分这些案例,浏览器也是如此。 url#a
会滚动到ID为a
的元素,但url#A
不会。
答案 1 :(得分:12)
我不得不在这方面不同意所有既定的智慧,所以我可能会被投票,但是:
如果您将所有混合大小写的网址重定向到正确设置的网址,则可以解决上述所有问题。因此,这一论点似乎来自传统和偏好。 URL的要点是具有用户友好的页面表示形式,如果您的网址对大写字母更友好,为什么不使用它呢?比较:
<强> moviesforyoutowatch.com/batman-vii-the-dark-knight-whatevers MoviesForYouToWatch.com/Batman-VII-The-Dark-Knight-Whatevers
我发现混合案例版本更适合此目的。如果技术原因无法通过小写比较和重定向解决,请分享。
答案 2 :(得分:5)
我知道你问技术原因,但从UX的角度来看也值得考虑。
假设您有一个带大写字符的网址,并且为了论证,这已经在印刷媒体上分发。当用户将该URL输入他们的浏览器时,他们很可能被迫匹配该情况(或者如果您的Web服务器区分大小写,则被强制匹配指定的情况)最终您正在给他们更多的工作要做,因为他们必须考虑案例。毕竟,他们不知道您的服务器是否区分大小写,他们过去可能会遇到来自区分大小写的Web服务器的404.
如果您的服务器区分大小写并且您使用的是大小写混合的URL,那么您可以为用户提供更多错误输入URL的范围。此外,假设您有URL www.example.com/Contact。很容易混淆大写和小写“c”(特别是如果它是手写复制的话),如果用户忽略了这一点并使用了错误的案例,他们可能永远无法访问你的内容。
考虑到这一切,请考虑www.example.com/News/Articles/FreeIceCreamForAll。在键盘上并不太难但在移动设备上考虑这一点,输入会非常繁琐。
如果用户想要从地址栏中记下URL,反之亦然。他们可能觉得他们需要匹配案例,最终给他们更多的工作要做,并增加错误的可能性。
总结;保持网址小写。
答案 3 :(得分:-17)
关于此问题的安全方面:
使用大写和小写混合实际上有一个很好的安全性原因。
它具有混淆和阻止攻击者的效果!
在人类对话中,人们容易与大写和小写使用相混淆。
如果人们包含大写和小写,人们就不能“清楚地”说出“标识符或密码或网址”的字样。
这有助于站点子部件上的数据或密码的安全性,这些子部件是作为站点或其数据的“自动访问”部分的锁定或安全子部分的一部分提供的。
它类似于NOT USING JSON。
JSON是“人类可读的文字”,因此JSON只是给所有攻击者(包括政府,谷歌......窃取你的想法和数据)......他们需要知道的关于数据的几乎所有内容......它是通过使用私人定制的非常快速的“二进制协议” - 使用您自己的“不可知数据结构”来混淆它们更安全......但请注意,因为它实际上可能会让您自己或您自己的开发团队感到困惑。 / p>
所有安全层和协议都必须“妥善管理”以避免混淆。
因此,通过简单地使用完全非传统的系统,人类攻击者(和一些机器人)可以获得更高水平的站点和数据安全性(也就是说,为什么有人想要使用“标准安全协议”?简单的重量级先前计算它们都可以轻易破解。
只需“盐和哈希”的一切 - 再加上一些额外的定制安全保护 - 这只是常识!
结论:以上所有答案都非常明确和正确 - 但您也可以愉快地利用相同的知识来混淆潜在的攻击者。