Из Википедии, свободной энциклопедии
Перейти к навигацииПерейти к поиску

Поле заголовка HTTP Location возвращается в ответах HTTP- сервера при двух обстоятельствах:

  1. Чтобы попросить веб-браузер загрузить другую веб-страницу ( перенаправление URL ). В этом случае заголовок Location следует отправлять с кодом состояния HTTP 3xx. Он передается как часть ответа веб-сервером, когда запрошенный URI имеет:
    • Временно переехал;
    • Переехал навсегда; или
    • Обработал запрос, например, POST-форму, и предоставляет результат этого запроса по другому URI.
  2. Для предоставления информации о местонахождении вновь созданного ресурса. В этом случае заголовок 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
  • Опубликовать / Перенаправить / Получить

Ссылки

  1. ^ Ричардсон, Леонард (2007). Веб-службы RESTful . Севастополь: О'Рейли. С.  228–230 . ISBN 978-0-596-52926-0.
  2. ^ "Местоположение" . Протокол передачи гипертекста - HTTP / 1.1 . IETF . Июнь 1999 г. с. 14.30. DOI : 10,17487 / RFC2616 . RFC 2616 .
  3. ^ Билет 185 рабочей группы IETF HTTPbis
  4. ^ "Местоположение" . Протокол передачи гипертекста (HTTP / 1.1): семантика и содержание . IETF . Июнь 2014. с. 7.1.2. DOI : 10,17487 / RFC7231 . RFC 7231 .
  5. ^ Универсальный идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005 г. doi : 10.17487 / RFC3986 . RFC 3986 .
  6. ^ «Схемы универсального идентификатора ресурса (URI) IANA» . Проверено 21 ноября 2014 .
  7. ^ a b «Относительная ссылка» . Универсальный идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005. сек. 4.2. DOI : 10,17487 / RFC3986 . RFC 3986 . Проверено 22 ноября 2020 .
  8. ^ a b «Обычные примеры» . Универсальный идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005 г. сек. 5.4.1. DOI : 10,17487 / RFC3986 . RFC 3986 . Проверено 22 ноября 2020 .
  9. ^ "Объединить пути" . Универсальный идентификатор ресурса (URI): общий синтаксис . IETF . Январь 2005. сек. 5.2.3. DOI : 10,17487 / RFC3986 . RFC 3986 . Проверено 22 ноября 2020 .