HTTP GET "www.foo.com/content"和"www.foo.com/content/"有什么不同?

  • 本文关键字:com foo content www GET HTTP http web get
  • 更新时间 :
  • 英文 :


我正在使用Firefox。

我在这个网页上读到:https://gitbookio.gitbooks.io/javascript/content/

我不小心打字了,结尾只省略了"/":https://gitbookio.gitbooks.io/javascript/content…并且它显示了没有格式的内容。

我听说HTTP GET请求...centent/...centent有什么不同。我所知道的是,重新请求...centent/将返回该目录的内容列表或显示该目录的默认值,而请求...content将返回该文件的内容(content)。我说得对吗?为什么以及以上两个链接的返回方式不同?(在这种情况下,它看起来像是网站的错误)

在服务器端,没有规则规定服务器应该输出带有或不带有尾部斜杠的内容。HTTP没有目录的概念。一切都只是一种资源。

但在浏览器端如何解释路径是有区别的。

在这种情况下,如果没有尾部斜杠,浏览器会认为它正在请求/javascript中名为"content"的资源。

当它查找告诉浏览器如何设置内容样式的CSS样式表时,它会在/javascript中查找该文件,因为该页面使用了一个相对链接:

<link rel="stylesheet" href="gitbook/style.css">
<link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-exercises/exercises.css">

对于浏览器,当不使用尾部斜杠时,第一个URL将转换为

https://gitbookio.gitbooks.io/javascript/gitbook/style.css

带有尾部斜线,则转换为

https://gitbookio.gitbooks.io/javascript/content/gitbook/style.css

这是一种糟糕的做法,或者是一种错误,这取决于你的观点。

相关内容

最新更新