406不可接受的有效负载的格式?

时间:2018-04-30 14:09:59

标签: http http-status-codes

在406 Not Acceptable回复中:

  

服务器应该生成一个包含可用列表的有效负载   表示特征和相应的资源标识符   用户或用户代理可以从中选择最合适的用户。   用户代理可以自动从中选择最合适的选择   那份清单。但是,该规范没有定义任何标准   用于这种自动选择,如RFC7231第6.4.1节中所述。

可用的代表性特征列表和相应的资源标识符”是否有首选格式?

我可以发送回复:

application/json,application/pdf

但是我假设406有效负载的默认Content-Type(在这种情况下是JSON)。

或者我应该发送一个非常简单的,几乎格式的,有效载荷如下:

<form name="validationform" ng-submit="submit()">
    <input type="text" name="value1" ng-model="textinputvalue" ng-required>
    <input type="submit" id="submit" value="Submit" />
</form>

1 个答案:

答案 0 :(得分:2)

  

&#34;可用的表示特征和相应的资源标识符列表是否有首选格式&#34;

这种有效载荷没有标准。

您可以选择用户代理可以轻松解析的任何格式。在实践中,JSON或文本都应该没问题:

{ "acceptable" : [ "application/json", "application/pdf" ] }
application/json,application/pdf

请参阅6.4.1 RFC 7231部分中的以下引文,该部分在406状态代码定义中引用:

  

[...]自动选择的特定格式未定义     此规范因为HTTP试图保持与之正交     其有效载荷的定义。在实践中,表示是     提供一些易于解析的格式,被认为是可以接受的     用户代理,由共享设计或内容确定     谈判,或以一些普遍接受的超文本格式。 [...]

来自Mozilla的MDN Web Docs建议following

  

[...]实际上,很少使用此错误:服务器忽略相关标头并提供实际页面,而不是使用此错误代码进行响应,这对最终用户来说很神秘并且难以修复用户。假设即使用户不会完全满意,他们也会更喜欢这个错误代码。 [...]