HTML链接尾随斜杠

时间:2015-08-24 14:27:50

标签: html

w3schools文档说:

  

如果没有子文件夹地址的尾部斜杠,您可能会向服务器生成两个请求。许多服务器会自动向地址添加一个尾部斜杠,然后创建一个新请求。

目前尚不清楚这究竟是什么意思。在href网址中添加尾部斜杠有什么不同,是否有关于添加尾部斜杠的最佳做法。

2 个答案:

答案 0 :(得分:3)

这是两个不同的网址:

http://example.com/foo
http://example.com/foo/

通常,但并非总是如此,请求第一个URL将触发服务器使用301 Permanent Redirect回复第二个URL。然后,浏览器必须向第二个URL发出第二个请求。

最常见的情况是,URL被映射到服务器文件系统上的目录并且正在加载index.html(或其他目录索引)。

动态生成内容的服务器(例如使用像Perl的Catalyst这样的MVC框架)不太可能这样做。在这种情况下,您经常需要更加谨慎地链接到哪里,因为相对URL的解析方式与两个URL不同。

答案 1 :(得分:1)

从根本上说,http://example.com/foohttp://example.com/foo/是两个完全不同的网址。最重要的是,在查询这些URL时,服务这些URL的服务器将如何响应。它完全取决于服务器该做什么。 .../foo可能会返回文件,而.../foo/可能会返回目录列表。或者两者都可以返回目录列表。或者一个文件。或者是同一个文件。或者每次都是随机的新回复。

W3S指出的是许多服务器默认配置为将重定向响应返回到以斜杠结尾的规范版本。这意味着,如果您从该服务器请求.../foo,它会将您重定向到.../foo/,然后会导致您的客户向.../foo/发送第二个请求。服务器为什么或如何或何时可以发出此重定向完全取决于每台服务器,以及它是否真的如此受欢迎的做法是值得怀疑的(W3S的所有内容都是如此)。

重要的是,您将网址指向您指向的位置。 .../foo是否是正确的网址,因为它是一个文件?或者是.../foo/正确的URL,因为它是(虚拟)目录的根目录?您决定,确保服务器的行为正常。