Есть ли непротиворечивость и/или стандарт о том, как браузеры отправляют URL в хост, связанный с запаздывающими наклонными чертами?
Значение, если я ввожу http://example.com
в строке поиска веб-браузера, браузер, предполагают для добавления запаздывающей наклонной черты (http://example.com/
) или нет?
Обратите внимание, что совсем другой вопрос, когда в URL есть элемент пути:
http://example.com/dir
- это другой URL , чем
http://example.com/dir/
, и на самом деле может содержать другое содержимое, и иметь другой рейтинг в поисковых системах.
Как сказано в RFC 2616:
3.2.2 http URL
Схема «http» используется для поиска сетевых ресурсов по протоколу HTTP
. В этом разделе определяется синтаксис схемы и семантика
для URL-адресов http.http_URL = "http:" "//" host [":" порт] [abs_path ["?" query]]
Если порт пуст или не указан, предполагается порт 80. Семантика
такова, что идентифицированный ресурс расположен на сервере, ожидающем TCP-соединений на этом порту этого хоста, а запрос - URI для ресурса - это abs_path (раздел 5.1.2). Использование IP-адресов в URL-адресах СЛЕДУЕТ по возможности избегать (см. RFC 1900 [ 24]). Если abs_path отсутствует в URL-адресе, он ДОЛЖЕН быть задан как "/" при использовании в качестве Request-URI для ресурса ( раздел 5.1.2). Если прокси-сервер получает имя хоста, которое не является полностью определенным доменным именем , он МОЖЕТ добавить свой домен к полученному имени хоста. Если прокси-сервер получает полное доменное имя , он НЕ ДОЛЖЕН изменять имя хоста.
Подробнее: http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGbpjYWa
5.1.2 Request-URI
...
{ {1}} Например, клиент, желающий получить указанный выше ресурс непосредственно с исходного сервера , создаст TCP соединение с портом 80 хоста {{1} } "www.w3.org" и отправьте строки:GET /pub/WWW/TheProject.html HTTP / 1.1 Хост: www.w3.org
, за которым следует оставшаяся часть запроса . Обратите внимание, что абсолютный путь не может быть пустым; если в исходном URI ничего нет, ему ДОЛЖНО быть дано как "/" (корень сервера).
Подробнее: http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGcaRbqU
HTTP-запрос, отправленный из браузера на сервер, не включает имя домена, только «путь» часть (начиная с первого слэша после доменного имени). Поскольку путь не может быть пустым, в этом случае отправляется /
.
Пример запроса GET для корневого каталога веб-сайта может быть следующим:
GET / HTTP/1.0
/
выше нельзя пропустить.
Что касается протокола, то http://example.com/something
и http://example.com/something/
совершенно разные. Некоторые серверы могут перенаправлять вас с одного на другой, если это реализовано таким образом.
Что касается чистых доменных имен, он всегда отправляет запрос, заканчивающийся косой чертой. (Само доменное имя не включается в раздел пути HTTP-запроса, как написали Грег Хьюгилл и другие . Однако он включен в заголовки.)
Вы можете проверить это с помощью такого инструмента, как Fiddler или WireShark.