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

时间:2016-01-13 20:02:36

标签: http web get

我正在使用Firefox。

我正在阅读此网页: https://gitbookio.gitbooks.io/javascript/content/

我不小心打字,最后只省略'/':https://gitbookio.gitbooks.io/javascript/content ...它显示没有格式的内容。

我听说HTTP GET要求...centent/...centent有所不同。我所知道的是,请求...centent/将返回该目录的内容列表或显示该目录的默认值,请求...content将返回该文件的内容(content)。我对吗?以上两个链接的原因和方式有何不同? (这种情况看起来像网站的bug)

1 个答案:

答案 0 :(得分:2)

在服务器端,没有规则服务器应该使用或不使用尾部斜杠输出。 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

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