Расположение содержимого
Расположение содержимого
Заголовок 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 |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
См. также
© 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