2016-01-13 2 views
1

Я использую Firefox.HTTP GET «www.foo.com/content» и «www.foo.com/content/» отличаются?

Я читал на этом сайте: https://gitbookio.gitbooks.io/javascript/content/

я случайно напечатал, опуская только «/» в конце: https://gitbookio.gitbooks.io/javascript/content ... и это показывает содержимое без формата.

Я слышал, что HTTP GET reqeust ...centent/ и ...centent отличаются. Я знаю, что requsting ...centent/ вернет список содержимого этого каталога или покажет значение по умолчанию этого каталога, и запрос ...content вернет содержимое этого файла (content). Я прав? И почему и как эти две ссылки возвращаются по-другому? (В этом случае это похоже на ошибку веб-сайта)

ответ

2

На стороне сервера нет правил, которые сервер должен выводить с завершающей косой чертой или без нее. У HTTP нет понятия каталогов. Все просто ресурс.

Но есть разница в том, как пути интерпретируются на стороне браузера.

В этом случае, что происходит с завершающей косой чертой, браузер считает, что он запрашивает ресурс в/javascript под названием «контент».

Когда он затем смотрит в таблицу стилей 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 

Это плохая практика или какая-то ошибка, в зависимости от вашей точки зрения.

+0

ой, поэтому он не смог просмотреть файл CSS! благодаря –