HTTP-расположение
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
Host: www.example.com
может получить ответ сервера
HTTP/1.1 302 Found
Location: https://www.example.org/index.php
Пример абсолютного пути относительного URL-адреса
[ редактировать ]Относительные URL-адреса — это URL-адреса, которые не включают схему или хост. Чтобы их можно было понять, их необходимо объединить с URL-адресом исходного запроса.
Запрос клиента на
https://www.example.com/blog/all :
может получить ответ сервера с абсолютным путем, поскольку он начинается с косой черты: [7]
HTTP/1.1 302 Found
Location: /articles/
URL-адрес местоположения расширяется клиентом до
https://www.example.com/articles/ . [8]
Пример относительного пути относительного URL-адреса
[ редактировать ]Запрос клиента на
https://www.example.com/blog/latest
может получить ответ сервера с относительным путем, поскольку он не начинается с косой черты: [7]
HTTP/1.1 302 Found
Location: 2020/zoo
Клиент удаляет сегмент пути после последней косой черты исходного URL-адреса и добавляет относительный путь, в результате чего
https://www.example.com/blog/2020/zoo . [10] [8]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Ричардсон, Леонард (2007). RESTful веб-службы . Севастополь: О'Рейли. стр. 228–230 . ISBN 978-0-596-52926-0 .
- ^ "Расположение" . Протокол передачи гипертекста — HTTP/1.1 . IETF . Июнь 1999 г. с. 14.30. дои : 10.17487/RFC2616 . РФК 2616 .
- ^ Билет 185 рабочей группы IETF HTTPbis
- ^ "Расположение" . Протокол передачи гипертекста (HTTP/1.1): семантика и содержание . IETF . Июнь 2014. сек. 7.1.2. дои : 10.17487/RFC7231 . РФК 7231 .
- ^ Единый идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005 г. doi : 10.17487/RFC3986 . РФК 3986 .
- ^ «Схемы единого идентификатора ресурса (URI) IANA» . Проверено 21 ноября 2014 г.
- ^ Jump up to: а б «Относительная ссылка» . Единый идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005 г. сек. 4.2. дои : 10.17487/RFC3986 . РФК 3986 . Проверено 22 ноября 2020 г.
- ^ Jump up to: а б «Нормальные примеры» . Единый идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005 г. сек. 5.4.1. дои : 10.17487/RFC3986 . РФК 3986 . Проверено 22 ноября 2020 г.
- ^ Ури, Авива . Оксфордское искусство онлайн. Издательство Оксфордского университета. 2003. doi : 10.1093/gao/9781884446054.article.t087366 .
- ^ «Объединить пути» . Единый идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005 г. сек. 5.2.3. дои : 10.17487/RFC3986 . РФК 3986 . Проверено 22 ноября 2020 г.