HTTPQUERY
Русский

Content-Location

Применение

Заголовок Content-Location предоставляет URL, определяющий конкретное представление ресурса, доставленное в теле ответа. В отличие от заголовка Location, который перенаправляет клиента на другой ресурс, Content-Location указывает на точное представление, выбранное сервером после согласования содержимого.

Когда сервер поддерживает несколько представлений одного и того же ресурса (разные языки, форматы или кодировки), заголовок Content-Location сообщает клиенту, какой именно вариант был выбран. Это различие важно для кэширования и для добавления согласованного результата в закладки.

Значением является либо абсолютный URL, либо относительная ссылка, разрешаемая относительно URL запроса. На практике чаще встречается относительная ссылка.

Content-Location также встречается в ответах на запросы PUT и POST. После того как успешный POST создаёт новый ресурс, сервер устанавливает Content-Location равным URL вновь созданного элемента, если тело ответа непосредственно представляет созданный ресурс.

Пример

Клиент запрашивает документ по адресу /report, и сервер с помощью согласования содержимого выбирает англоязычный вариант в формате PDF. Заголовок Content-Location указывает конкретный URL выбранного представления.

GET /report HTTP/1.1
Host: example.re
Accept: application/pdf
Accept-Language: en
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Language: en
Content-Location: /report/en.pdf

После того как запрос POST создаёт новый ресурс, сервер возвращает созданный элемент в теле ответа. Заголовок Content-Location указывает на канонический URL нового ресурса.

HTTP/1.1 201 Created
Content-Type: application/json
Content-Location: /orders/12345

Примечание

Заголовок Location перенаправляет клиента на другой ресурс, изменяя цель запроса. Content-Location определяет конкретный URL представления, уже доставленного в теле ответа. Location инициирует новый запрос. Content-Location описывает то, что было возвращено.