#http #http-headers
#http #http-заголовки
Вопрос:
Мне интересно, могу ли я вернуть заголовок ответа
Content-Type: application/json text/json
или это незаконно?
В протоколе HTTP указано, что Content-Type должен иметь тип MediaType, и этот тип MediaType определяется следующим образом:
media-type = type "/" subtype *( ";" parameter )
type = token
subtype = token
Но у меня возникли проблемы с интерпретацией того, что это означает, кто-нибудь может меня просветить?
Спасибо!
Комментарии:
1. Обратите внимание, что
Content-Type
, как и любой другой заголовок, может отображаться дважды или более.2. @Stephan Я так не думаю: ни одно из escape-предложений tools.ietf.org/html/rfc7230#section-3.2.2 похоже, применимо к Content-Type.
Ответ №1:
Вам нужно посмотреть на определение поля заголовка:
http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.14.17
Content-Type = «Content-Type» «:» тип носителя
таким образом, требуется один тип носителя, который определяется грамматикой, которую вы процитировали выше.
Итак, ответ таков: один тип / подтип, за которым следуют необязательные параметры.
Ответ №2:
Нет. Как указано в принятом ответе, само значение заголовка не допускает нескольких значений, а также не разрешается отправлять заголовки нескольких типов контента:
Отправитель НЕ ДОЛЖЕН генерировать несколько полей заголовка с одинаковым именем поля в сообщении, если только либо все значение поля для этого поля заголовка не определено как список, разделенный запятыми [т. Е. #(значения)], либо поле заголовка не является хорошо известным исключением (как указано ниже).
https://www.rfc-editor.org/rfc/rfc7230#section-3.2.2
Ни одно из «escape-предложений» не выполняется, поскольку media-type
не допускает список значений, разделенных запятыми, и Content-Type
очевидно, также не является общеизвестным исключением.