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 описывает то, что было возвращено.