是的,所有主流浏览器在请求裸域URL(即首页)时都会对HTTP请求 “加斜杠” 。为了使HTTP请求有效,这实际上是必需的,其原因http://example.com/
是:
GET / HTTP/1.1
Host: example.com
请注意/
第一行中的(斜杠)-这是所请求的URL。这里什么都没有是无效的。从RFC 2616:
请注意,绝对路径不能为空;如果原始URI中没有任何内容,则必须将其指定为“ /”(服务器根目录)。
您需要查看浏览器向服务器发出的HTTP请求。显示在“浏览器状态栏”中的URL,甚至地址栏中的URL可能都不同-更加用户友好。谷歌Chrome并不会追加在状态栏最后的斜线,虽然斜线是在请求。
如果您指定http://example.com
(无斜杠),则不会发生301重定向,因为浏览器会在发出HTTP请求之前先对其进行更正。
请注意,这与在存在路径/目录时在URL末尾添加斜杠不同。例如。http://example.com/directory/
。您链接到的文章似乎两者都一样,而且似乎并不是完全正确的IMO。如果您请求http://example.com/directory
(不使用斜杠),则浏览器不会附加一个斜杠,是的,大多数服务器将301重定向到http://example.com/directory/
(斜杠)-但这取决于服务器;它可能会破坏!例如,在Apache上,这取决于将DirectorySlash
指令设置为on
。