我正在使用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
这是一种糟糕的做法,或者是一种错误,这取决于你的观点。