Spec-Zone.ru › HTTP

Заголовки: 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 Да
Заголовок запроса, разрешённый списком CORS Да*

* Значения не могут содержать байты заголовка запроса, небезопасные для 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"
  }
}

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

Спецификация
HTTP Semantics>
# status.206>
HTTP Semantics>
# field.content-type>

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

Настольные Мобильные
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

См. также

  • Заголовки Accept, Accept-Encoding, Accept-Language
  • Vary
  • Content-Encoding
  • Content-Disposition
  • 206 Partial Content
  • X-Content-Type-Options

© 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

Spec-Zone.ru

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