Http web浏览器是否总是在域名后发送尾随斜杠?
浏览器如何向主机发送与尾部斜杠相关的url,是否存在一致性和/或标准Http web浏览器是否总是在域名后发送尾随斜杠?,http,browser,Http,Browser,浏览器如何向主机发送与尾部斜杠相关的url,是否存在一致性和/或标准 意思是,如果我输入http://example.com 在web浏览器的地址栏中,浏览器是否要添加尾部斜杠http://example.com/ 是否?就协议而言,http://example.com/something 和http://example.com/something/ 它们完全不同。如果以这种方式实现,某些服务器可能会将您从一个服务器重定向到另一个服务器 对于纯域名,它总是发送以斜杠结尾的请求。 正如Greg H
意思是,如果我输入http://example.com 在web浏览器的地址栏中,浏览器是否要添加尾部斜杠http://example.com/ 是否?就协议而言,http://example.com/something 和http://example.com/something/ 它们完全不同。如果以这种方式实现,某些服务器可能会将您从一个服务器重定向到另一个服务器 对于纯域名,它总是发送以斜杠结尾的请求。 正如Greg Hewgill和其他人所写,域名本身不包括在HTTP请求的路径部分中。但是,它包含在标题中
您可以使用Fiddler或WireShark等工具进行检查。从浏览器发送到服务器的HTTP请求不包括域名,只包括从域名后第一个斜杠开始的路径部分。由于路径不能为空,因此在这种情况下会发送/ 网站根目录的示例GET请求可能是: GET / HTTP/1.0 上面的/不能省略。请注意,当URL具有path元素时,这是一个问题:
http://example.com/dir
是不同于的URL
事实上,可能包含不同的内容,并具有不同的搜索引擎排名。正如RFC 2616所述:
3.2.2 http URL
http方案用于定位
通过HTTP的网络资源
协议本节定义了
特定于方案的语法和
http URL的语义
http_URL=http://host[:
端口][abs_路径[?查询]]
如果端口为空或未给定,
假定为端口80。语义学
确定的资源是否为
位于正在侦听的服务器上
该端口上的TCP连接
主机的请求URI
参考第5.1.2节的abs_路径。
在URL中使用IP地址
应尽可能避免使用
参见RFC 1900[24]。如果
URL中不存在abs_路径,它
必须作为/当用作
请求资源节的URI
5.1.2. 如果代理收到的主机名不是完全限定的
域名,它可以添加自己的域名
指向它接收到的主机名。如果
代理收到完全合格的
域名,代理不得更改
主机名
阅读更多:
5.1.2请求URI
...
例如,希望检索
以上资源直接来自
源服务器将创建一个TCP
连接到主机的端口80
www.w3.org并发送以下信息:
GET /pub/WWW/TheProject.html HTTP/1.1
Host: www.w3.org
然后是剩余的
要求请注意,绝对路径
不能为空;如果没有出现在
必须提供原始URI
作为服务器根目录
阅读更多内容:为了澄清这一点,域仅在主机头HTTP 1.1中发送。因此,您的意思是,即使您有一个空路径,URL也保证有一个尾随斜杠?@Hank:我的意思是,如果您有一个空路径,则会发送一个/。这并不是说后面的斜杠。如果路径部分不是空的,那么浏览器会发送URL栏上的内容,但服务器可能会在响应中选择重定向浏览器。很抱歉进行干预。换句话说:如果路径为空,浏览器将添加/。如果路径不为空,则如果添加了尾随的/,则由服务器添加。@jholster错误。见RFC 2616。这里有一句话,这是一个很好的观点。建议以/@Claudio作为url的结尾,请提供一些参考?@Yaggo:查看google的尾部斜杠url。对不起,我不记得有哪一个地方读过。我读过,但没有发现任何证据,只有个人观点。不带尾随斜杠的URI非常流行,单凭它并不能保证任何事情,而且我从未见过反对它们的基于事实的论点。当网络主要是静态文件时,在目录中添加/可能是事实上的标准,但我现在看不出有什么理由喜欢这样。在今天的网络中,“目录”的概念是模糊的。省略尾随斜杠并不会强制服务器进行额外的检查。URI不一定反映文件层次结构或与文件有关。我认为你的观点是关于统计文件,而我谈论的是一般的web应用程序。这是不正确的/某物/与HTTP意义上的某物/不同。
GET /pub/WWW/TheProject.html HTTP/1.1
Host: www.w3.org