Ima*_*ree 277 url case-sensitive
我注意到了
HTTP://STACKOVERFLOW.COM/QUESTIONS/ASK
Run Code Online (Sandbox Code Playgroud)
和
http://stackoverflow.com/questions/ask
Run Code Online (Sandbox Code Playgroud)
两者都工作正常 - 实际上前一个转换为小写.
我认为这对用户来说很有意义.
如果我查看Google,那么此网址可以正常使用:
http://www.google.com/intl/en/about/corporate/index.html
Run Code Online (Sandbox Code Playgroud)
但这个"关于"的人不起作用:
http://www.google.com/intl/en/ABOUT/corporate/index.html
Run Code Online (Sandbox Code Playgroud)
URL应该区分大小写吗?
jld*_*ont 268
根据W3的" HTML和URL ",他们应该:
可能存在URL或URL的一部分,其中大小写无关紧要,但识别这些可能并不容易.用户应始终认为URL区分大小写.
jdh*_*dh8 122
所有" 不敏感 "都是加粗的以便于阅读.
根据RFC 4343,域名不区分大小写.URL的其余部分通过GET方法发送到服务器.这可能是区分大小写的.
以此页面为例,stackoverflow.com 收到 GET字符串/ questions/7996919/should-url-case-sensitive-sensitive,将HTML文档发送到您的浏览器.Stackoverflow.com 不区分大小写,因为它对/ QUEStions/7996919/Should-url-case-sensitive敏感产生相同的结果.
另一方面,除了标题的第一个字符外,维基百科区分大小写.网址https://en.wikipedia.org/wiki/Case_sensitivity和https://en.wikipedia.org/wiki/case_sensitivity导致相同的文章,但https://en.wikipedia.org/wiki/CASE_SENSITIVITY返回404.
Jim*_*utt 70
取决于托管操作系统.由于底层文件系统不区分大小写,因此Windows上托管的站点往往不区分大小写.Unix类型系统上托管的站点往往区分大小写,因为它们的底层文件系统通常区分大小写.URL的主机名部分始终不区分大小写,它是路径的其余部分.
Bha*_*hah 31
URL的域名部分不区分大小写,因为DNS忽略大小写:
http://en.example.org/
并且HTTP://EN.EXAMPLE.ORG/
都打开同一页面.
该路径用于指定并可能找到所请求的资源.它区分大小写,但某些服务器可能会将其视为不区分大小写,特别是基于Microsoft Windows的服务器.
如果服务器区分大小写并且http://en.example.org/wiki/URL
正确,那么http://en.example.org/WIKI/URL
或http://en.example.org/wiki/url
将显示HTTP 404错误页面,除非这些URL本身指向有效资源.
Ken*_*rza 15
我不喜欢碰到旧文章,但因为这是对这一特定问题的第一批回应之一,我觉得有必要澄清一些事情.
正如@Bhavin Shah回答的那样,url的域部分是不区分大小写的,所以
http://google.com
Run Code Online (Sandbox Code Playgroud)
和
http://GOOGLE.COM
Run Code Online (Sandbox Code Playgroud)
和
http://GoOgLe.CoM
Run Code Online (Sandbox Code Playgroud)
是完全相同的,但域名部分之后的所有内容都被视为区分大小写.
所以...
http://GOOGLE.COM/ABOUT
Run Code Online (Sandbox Code Playgroud)
和
http://GOOGLE.COM/about
Run Code Online (Sandbox Code Playgroud)
是不同的.
注意:我说的是"技术上"而不是"字面上"在很多情况下,大多数情况下,服务器设置为处理这些项目相同,但是可以设置它们以便它们不会被处理相同.
不同的服务器处理不同的方式,在某些情况下,它们必须区分大小写.在许多情况下,查询字符串值是经过编码的(例如作为查询字符串值传递的Session Ids或Base64编码数据)这些项目的性质区分大小写,因此服务器在处理它们时必须区分大小写.
因此,为了回答这个问题,"应该"服务器在获取这些数据时会区分大小写,答案是"是的,绝对是".
当然不是所有东西都需要区分大小写,但服务器应该知道它是什么以及如何处理这些情况.
@Hart Simha的评论基本上也说了同样的话.在我发布之前我错过了,所以我想在信用到期时给予信用.
RFC 3986 的第 6.2.2.1 节说“ scheme 和 host 不区分大小写,因此应规范化为小写。例如,URIHTTP://www.EXAMPLE.com/
相当于http://www.example.com/
。除非另有明确定义,否则假定其他通用语法组件区分大小写。通过该计划”。
服务器可能会在内部对传递的 URI 进行规范化,并为不同大小写 (/about/
和/ABOUT/
) 的 URI 提供相同的资源,从而使 URI 对用户来说显得不区分大小写。
小智 6
请查看此处的规范:第2.7.3节 http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-25#page-19
该方案和主机不区分大小写,通常以小写形式提供; 所有其他组件都以区分大小写的方式进行比较.
归档时间: |
|
查看次数: |
131234 次 |
最近记录: |