HTTP协议是否支持在响应头中使用多个内容类型?

42

我想知道是否可以返回响应头

Content-Type: application/json text/json 

还是说这是不合法的吗?

HTTP协议规定Content-Type应该是mediaType类型,而mediaType定义如下:

   media-type     = type "/" subtype *( ";" parameter )
   type           = token
   subtype        = token

但是我对这个含义有些困惑,有人能给我解释一下吗?

谢谢!


1
请注意,Content-Type,像其他任何标头一样,可能会出现两次或更多。 - Stephan
@Stephan 我不这么认为:https://tools.ietf.org/html/rfc7230#section-3.2.2 的任何转义规则似乎都不适用于Content-Type。 - bkgs
2个回答

37

5

不行。正如被接受的答案指出的那样,头部值本身不允许多个值,并且也不允许发送多个Content-Type头部:

发送者不得在消息中生成具有相同字段名称的多个标头字段,除非该标头字段的整个字段值定义为逗号分隔的列表[即,#(values)]或标头字段是众所周知的异常情况(如下所述)。

https://www.rfc-editor.org/rfc/rfc7230#section-3.2.2

由于media-type不允许逗号分隔的值列表,且显然Content-Type也不是一个众所周知的例外,因此没有任何“逃逸条款”适用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接