Разница между HTTP-заголовками Accept и Content-Type

Поэтому заголовок Accept сообщает серверу тип MIME-ресурса, который ищет браузер. Например, сервер может отправлять обычный текст, HTML, JSON и т. Д.

ОК, это имеет смысл, но когда я смотрю заголовок Content-Type, и, похоже, он делает то же самое. Например, он сообщает серверу, что он хочет текст или JSON.

Итак, в чем разница между заголовками Accept и Content-Type?

98 голосов | спросил JohnMerlino 22 J0000006Europe/Moscow 2012, 04:58:23

4 ответа


123

Как вы правильно заметили, заголовок Accept используется клиентами HTTP чтобы сообщить серверу, какие типы контента они будут принимать. Затем сервер отправит ответ, который будет содержать заголовок Content-Type сообщая клиенту, каков тип содержимого возвращаемого содержимого на самом деле.

Однако, как вы могли заметить, HTTP-запросы могут также содержать Заголовки Content-Type. Зачем? Ну, подумайте о POST или PUT . С этими типами запросов клиент фактически отправляет на сервер кучу данных в качестве части запроса, а заголовок Content-Type сообщает серверу, каковы данные на самом деле (и, следовательно, определяет, как сервер будет его анализировать).

В частности, для запроса POST, полученного в результате отправки HTML-формы, Content-Type запроса будет (обычно) одним из стандартных формы содержимого ниже , как указано атрибутом enctype в <form> тег:

  • application/x-www-form-urlencoded (по умолчанию, старше, проще, немного меньше накладных расходов для небольших объемов простого текста ASCII, без поддержки загрузки файлов).
  • multipart/form-data (новее, добавляет поддержку загрузки файлов, более эффективен для больших объемов двоичных данных или текста, отличного от ASCII).
ответил Ilmari Karonen 22 J0000006Europe/Moscow 2012, 15:20:11
18
  • Принять : это то, что браузер может переварить, например, на всех языках, которые могут понять пользователи.
  • Content-Type : в каком формате находятся фактические данные, например, на каком языке кто-то говорит. Поскольку компьютеры не могут (ну, теперь они могут) распознавать другие типы, например, люди могут сказать «о, он немецкий!» или «она говорит по-китайски!».
ответил ionFish 22 J0000006Europe/Moscow 2012, 05:09:55
10

Принять, как

  

Вот мой запрос, и я бы хотел (принять) этот формат ответа

Content-Type похож на

  

Вот мой запрос (или ответ), и это (Content-Type) - это формат содержимого, которое я отправляю в свой запрос (или ответ)

ответил JRomio 15 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 15 Sep 2016 21:43:21 +0300 2016, 21:43:21
1

Это сеанс запроса-ответа, поэтому клиент

  • отправляет запрос «Content-Type» и
  • ожидает получения ответа на тип носителя «Принять».
ответил Waldemar 24 42016vEurope/Moscow11bEurope/MoscowThu, 24 Nov 2016 18:52:14 +0300 2016, 18:52:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132