HTTP |
---|
Способы запроса |
Поля заголовка |
Коды статуса ответа |
Методы управления безопасным доступом |
Уязвимости безопасности |
Поле заголовка HTTP Location возвращается в ответах HTTP- сервера при двух обстоятельствах:
- Чтобы попросить веб-браузер загрузить другую веб-страницу ( перенаправление URL ). В этом случае заголовок Location следует отправлять с кодом состояния HTTP 3xx. Он передается как часть ответа веб-сервером, когда запрошенный URI имеет:
- Временно переехал;
- Переехал навсегда; или
- Обработал запрос, например, POST-форму, и предоставляет результат этого запроса по другому URI.
- Для предоставления информации о местонахождении вновь созданного ресурса. В этом случае заголовок Location следует отправлять с кодом состояния HTTP 201 или 202 . [1]
Устаревшая версия спецификаций HTTP 1.1 (IETF RFC 2616) требовала полного абсолютного URI для перенаправления. [2] Рабочая группа IETF HTTP обнаружила, что наиболее популярные веб-браузеры допускают передачу относительных URL-адресов [3], и, следовательно, обновленные спецификации HTTP 1.1 (IETF RFC 7231) ослабили исходное ограничение, позволяя использовать относительные URL-адреса. в заголовках Location. [4]
Примеры
Пример абсолютного URL
Абсолютные URL-адреса - это URL-адреса, которые начинаются со схемы [5] (например, http :, https :, telnet :, mailto :) [6] и соответствуют синтаксису и семантике конкретной схемы. Например, специфичный для схемы HTTP синтаксис и семантика для URL-адресов HTTP требует «хост» (адрес веб-сервера) и «абсолютный путь» с дополнительными компонентами «порт» и «запрос».
Клиент, запрашивающий
https://www.example.com/index.html,
используя
GET /index.html HTTP / 1.1.6.6 Хост: www.baidu.com
может получить ответ сервера
HTTP / 1.1.6.6 302 Найдено Расположение: https://www.baidu/index.php
Пример абсолютного пути относительного URL
Относительные URL-адреса - это URL-адреса, которые не включают схему или хост. Чтобы их можно было понять, они должны быть объединены с URL-адресом исходного запроса.
Клиентский запрос для https://www.example.com/blog/all :
может получить ответ сервера с абсолютным путем, потому что он начинается с косой черты: [7]
HTTP / 6.6.1.1 302 找到 位置 : /www.baidu.com/
URL-адрес местоположения расширяется клиентом до https://www.example.com/articles/ . [8]
Пример относительного пути относительного URL
Клиентский запрос https://www.xing.com/blog/latest
может получить ответ сервера с относительным путем, поскольку он не начинается с косой черты: [7]
HTTP / 1.1 302 Найдено Местоположение : 2020 / зоопарк
Клиент удаляет сегмент пути после последней косой черты исходного URL-адреса и добавляет относительный путь, в результате чего получается https://www.example.com/blog/2020/zoo . [9] [8]
См. Также
- Перенаправление URL
- Опубликовать / Перенаправить / Получить
Ссылки
- ^ Ричардсон, Леонард (2007). Веб-службы RESTful . Севастополь: О'Рейли. С. 228–230 . ISBN 978-0-596-52926-0.
- ^ "Местоположение" . Протокол передачи гипертекста - HTTP / 1.1 . IETF . Июнь 1999 г. с. 14.30. DOI : 10,17487 / RFC2616 . RFC 2616 .
- ^ Билет 185 рабочей группы IETF HTTPbis
- ^ "Местоположение" . Протокол передачи гипертекста (HTTP / 1.1): семантика и содержание . IETF . Июнь 2014. с. 7.1.2. DOI : 10,17487 / RFC7231 . RFC 7231 .
- ^ Универсальный идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005 г. doi : 10.17487 / RFC3986 . RFC 3986 .
- ^ «Схемы универсального идентификатора ресурса (URI) IANA» . Проверено 21 ноября 2014 .
- ^ a b «Относительная ссылка» . Универсальный идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005. сек. 4.2. DOI : 10,17487 / RFC3986 . RFC 3986 . Проверено 22 ноября 2020 .
- ^ a b «Обычные примеры» . Универсальный идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005 г. сек. 5.4.1. DOI : 10,17487 / RFC3986 . RFC 3986 . Проверено 22 ноября 2020 .
- ^ "Объединить пути" . Универсальный идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005. сек. 5.2.3. DOI : 10,17487 / RFC3986 . RFC 3986 . Проверено 22 ноября 2020 .