Spec-Zone.ru › HTTP

Расположение содержимого

Расположение содержимого

Заголовок Content-Location указывает альтернативное местоположение возвращаемых данных. Основное его использование — указание URL-адреса ресурса, переданного в результате переговоров о формате содержимого.

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

Тип заголовка Заголовок представления
Запрещённое имя заголовка нет

Синтаксис

Content-Location: <url>

Директивы

<url>

Относительный (относительно URL-адреса запроса) или абсолютный URL-адрес.

Примеры

Запрос данных с сервера в различных форматах

Предположим, что API сайта может возвращать данные в форматах JSON, XML или CSV. Если URL для конкретного документа находится по адресу https://example.com/documents/foo, сайт может возвращать различные URL для Content-Location в зависимости от заголовка запроса Accept:

Заголовок запроса Заголовок ответа
Accept: application/json, text/json Content-Location: /documents/foo.json
Accept: application/xml, text/xml Content-Location: /documents/foo.xml
Accept: text/plain, text/* Content-Location: /documents/foo.txt

Эти URL-адреса — примеры; сайт может предоставлять различные типы файлов с любыми URL-схемами, такими как параметр строки запроса: /documents/foo?format=json, /documents/foo?format=xml, и так далее.

Затем клиент мог запомнить, что версия JSON доступна по этому конкретному URL-адресу, пропуская переговоры о формате содержимого при следующем запросе этого документа.

Сервер также мог учитывать другие заголовки переговоров о формате содержимого, такие как Accept-Language.

Указание на новый документ (HTTP 201 Создано)

Предположим, что вы создаёте новую запись блога через API сайта:

POST /new/post
Host: example.com
Content-Type: text/markdown

# My first blog post!

I made this through `example.com`'s API. I hope it worked.

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

HTTP/1.1 201 Created
Content-Type: text/markdown
Content-Location: /my-first-blog-post

# My first blog post

I made this through `example.com`'s API. I hope it worked.

Указание URL-адреса результата транзакции

Предположим, у вас есть <form> для отправки денег другому пользователю сайта.

<form action="/send-payment" method="post">
  <p>
    <label>Who do you want to send the money to?
      <input type="text" name="recipient" />
    </label>
  </p>

  <p>
    <label>How much?
      <input type="number" name="amount" />
    </label>
  </p>

  <button type="submit">Send Money</button>
</form>

При отправке формы сайт генерирует квитанцию о транзакции. Сервер может использовать Content-Location для указания URL-адреса этой квитанции для последующего доступа.

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Location: /my-receipts/38

<!doctype html>
(Lots of HTML…)

<p>You sent $38.00 to ExampleUser.</p>

(Lots more HTML…)

Спецификации

Спецификация
Семантика HTTP
# field.content-location

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet
Content-Location
Да
12
Да
Да
Да
Да
Да
Да
Да
Да
Да
Да

См. также

  • Location

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Location

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API