根据HTTP1.1 spec,以下
的Accept标头Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c
被解释为
text/html and text/x-c are the preferred media types, but if they do not
exist, then send the text/x-dvi entity, and if that does not exist, send
the text/plain entity
让我们将标题更改为:
Accept: text/html, text/x-c
如果这两项都不被接受,会返回什么?例如让我假装我只支持application / json
答案 0 :(得分:4)
也许您应该回复 406 Not Acceptable 。这就是我阅读this的方式。
或 415不支持的媒体类型?
我会选择406,因为在这种情况下并根据规格,回复应该包括一系列备选方案。虽然我不清楚该列表应该是什么样子。
答案 1 :(得分:2)
“如果存在Accept头字段,并且服务器无法根据组合的Accept字段值发送可接受的响应,则服务器应该发送406(不可接受)响应。” - RFC2616, Section 14.1
答案 2 :(得分:1)
你可以选择。您可以使用406回复并包含描述可用格式的“实体”(例如HTML或文本文件);或者,如果您使用的是HTTP 1.1,则可以发送您支持的格式,即使它未在Accept标头中列出。
(参见RFC 2616的第10.4.7节)
“注意:允许使用HTTP / 1.1服务器 返回不是的回复 根据接受可以接受 请求中发送的标头。在一些 在某些情况下,这甚至可能更为可取 发送406响应。用户代理 我们鼓励他们检查标题 确定的传入响应 如果可以接受的话。“