Заголовки: Content-Type
Заголовок Content-Type
Базовая поддержка Широко доступно
Эта возможность хорошо зарекомендовала себя и работает на множестве устройств и в различных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
HTTP-заголовок Content-Type представления используется для указания исходного типа медиа ресурса до применения какого-либо кодирования содержимого.
В ответах заголовок Content-Type сообщает клиенту тип медиа возвращаемых данных. В запросах, например POST или PUT, клиент использует заголовок Content-Type, чтобы указать тип содержимого, отправляемого на сервер. Если реализация или конфигурация сервера строго обрабатывает тип содержимого, сервер может вернуть ответ с ошибкой клиента 415.
Заголовок Content-Type отличается от Content-Encoding: Content-Encoding помогает получателю понять, как декодировать данные и восстановить их исходный вид.
Примечание: Это значение может игнорироваться, если браузеры выполняют определение MIME-типа (или определение типа содержимого) ответов. Чтобы запретить браузерам определять MIME-тип, задайте для заголовка X-Content-Type-Options значение nosniff. Подробнее см. в разделе Проверка MIME-типа.
* Значения не могут содержать байты заголовка запроса, небезопасные для CORS: "():<>?@[\]{},, Delete 0x7F и управляющие символы от 0x00 до 0x19, за исключением Tab 0x09. Кроме того, тип медиа разобранного значения (без учёта параметров) должен быть одним из следующих: application/x-www-form-urlencoded, multipart/form-data или text/plain.
Синтаксис
Content-Type: <media-type>
Например:
Content-Type: text/html; charset=utf-8 Content-Type: multipart/form-data; boundary=ExampleBoundaryString
Директивы
<media-type>-
Тип медиа ресурса или данных. Может содержать следующие параметры:
-
charset: указывает используемый стандарт кодировки символов. Значение не зависит от регистра, но предпочтительно использовать строчные буквы. -
boundary: для составных сущностей параметрboundaryявляется обязательным. Он используется для обозначения границ нескольких частей сообщения. Значение состоит из 1–70 символов (не заканчивается пробельным символом), которые, как известно, надёжно работают в различных системах (например, в почтовых шлюзах). Часто в теле запроса перед границей заголовка добавляются два дефиса, а в конце последней границы — ещё два дефиса.
-
Примеры
>Отправка ресурсов с правильным типом содержимого
В следующих двух примерах ответов ресурсы JavaScript и CSS отправляются с типом text/javascript для JavaScript и text/css для CSS. Правильный тип содержимого этих ресурсов помогает браузеру обрабатывать их более безопасно и эффективно. Дополнительную информацию см. в разделе Правильная настройка MIME-типов сервера.
HTTP/1.1 200 content-encoding: br content-type: text/javascript; charset=utf-8 vary: Accept-Encoding date: Fri, 21 Jun 2024 14:02:25 GMT content-length: 2978 const videoPlayer=document.getElementById...
HTTP/3 200
server: nginx
date: Wed, 24 Jul 2024 16:53:02 GMT
content-type: text/css
vary: Accept-Encoding
content-encoding: br
.super-container{clear:both;max-width:100%}...
Content-Type в составных формах
В запросе POST, отправленном при отправке HTML-формы, Content-Type запроса задаётся атрибутом enctype элемента <form>.
<form action="/foo" method="post" enctype="multipart/form-data"> <input type="text" name="description" value="Description input value" /> <input type="file" name="myFile" /> <button type="submit">Submit</button> </form>
Запрос будет выглядеть примерно так, как в следующем примере; некоторые заголовки опущены для краткости. Для наглядности в запросе используется граница ExampleBoundaryString, но на практике браузер создал бы строку, скорее похожую на ---------------------------1003363413119651595289485765.
POST /foo HTTP/1.1 Content-Length: 68137 Content-Type: multipart/form-data; boundary=ExampleBoundaryString --ExampleBoundaryString Content-Disposition: form-data; name="description" Description input value --ExampleBoundaryString Content-Disposition: form-data; name="myFile"; filename="foo.txt" Content-Type: text/plain [content of the file foo.txt chosen by the user] --ExampleBoundaryString--
Content-Type при отправке формы с кодированием URL
Если формы не предусматривают загрузку файлов и используют более простые поля, может быть удобнее отправлять данные URL-кодированной формы в теле запроса:
<form action="/submit" method="post"> <label for="comment">Comment:</label> <input type="text" id="comment" name="comment" value="Hello!" /> <button type="submit">Submit</button> </form>
POST /submit HTTP/1.1 Host: example.com Content-Type: application/x-www-form-urlencoded Content-Length: 16 comment=Hello%21
Content-Type в REST API с использованием JSON
Многие API REST используют application/json в качестве типа содержимого, что удобно для взаимодействия между программами или программного взаимодействия. В следующем примере показан ответ 201 Created с результатом успешно выполненного запроса:
HTTP/1.1 201 Created
Content-Type: application/json
{
"message": "New user created",
"user": {
"id": 123,
"firstName": "Paul",
"lastName": "Klee",
"email": "p.klee@example.com"
}
}
Спецификации
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
Content-Type |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 | 1 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Type