Насколько я понял, есть два места, где можно установить тип контента:
- Клиент устанавливает тип контента для тела, которое он отправляет на сервер (например, для публикации)
- Сервер устанавливает тип содержимого для ответа.
Означает ли это, что мне не нужно или не следует устанавливать тип содержимого для всех моих запросов get (на стороне клиента). И если я могу или должен какой тип контента это будет?
Также я прочитал в нескольких сообщениях, что тип контента клиента указывает, какой тип контента клиент хотел бы получить. Так что, возможно, моя точка 1 не так?
источник
SHOULD NOT
включают Content-Type. У нас есть явная цитата?Запросы на получение не должны иметь тип содержимого, поскольку они не имеют сущности запроса (то есть тела)
источник
GET-запросы могут иметь заголовки «Accept», в которых указано, какие типы контента понимает клиент. Сервер может затем использовать это, чтобы решить, какой тип контента отправить обратно.
Они не являются обязательными, хотя.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1
источник
Принятый ответ неверен. Цитата верна, утверждение, что PUT и POST должны иметь ее, неверно. Не требуется, чтобы PUT или POST действительно содержали дополнительный контент. Также нет запрета на то, чтобы GET действительно имел контент.
В РЛКЕ точно сказать , что они имеют в виду .. IFF вашей стороны (клиент или сервер происхождения) будет посылать дополнительный контент, помимо заголовков HTTP, то следует указать заголовок Content-Type. Но обратите внимание, что допустимо опускать Content-Type и по-прежнему включать контент (скажем, используя заголовок Content-Length).
источник
Краткий ответ: Скорее всего, нет, вам не нужен заголовок типа содержимого для запросов HTTP GET. Но спецификации, похоже, также не исключают заголовок типа содержимого для HTTP GET.
Вспомогательные материалы:
«Content-Type» является частью метаданных представления (т.е. полезной нагрузки). Цитируется из RFC 7231 раздел 3.1 :
Цитируется из RFC 7231 раздел 3.1.1.5 (кстати, текущий выбранный ответ имел опечатку в номере раздела):
В этом смысле
Content-Type
заголовок на самом деле не относится к HTTP-запросу GET (или к тому же к запросу POST или PUT). Речь идет о полезной нагрузке внутри таких независимо запрос. Так что, если не будет полезной нагрузки, там не нужноContent-Type
. На практике некоторые реализации пошли дальше и сделали это понятное предположение. Цитируется из комментария Адама :Однако, строго говоря, сами спецификации не исключают, что HTTP GET содержит полезную нагрузку. Цитируется из RFC 7231 раздел 4.3.1 :
Таким образом, если ваш HTTP GET по какой-либо причине включает полезную нагрузку,
Content-Type
заголовок, вероятно, также является разумным.источник
Проблема в том, что в сообщении GET не передается тип содержимого, это означает, что тип содержимого не имеет значения, так как сторона сервера все равно определяет содержимое. Проблема, с которой я столкнулся, состоит в том, что сейчас есть много мест, которые настраивают свои веб-сервисы так, чтобы они были достаточно умными, чтобы подобрать тип контента, который вы передаете, и вернуть ответ в «типе», который вы запрашиваете. Например. в настоящее время мы обмениваемся сообщениями с местом по умолчанию JSON, однако они настроили свой веб-сервис таким образом, что если вы передадите тип содержимого xml, они будут возвращать xml, а не JSON по умолчанию. Который я думаю, что движение вперед - отличная идея
источник