关于406 Not Acceptable响应负载及可用表示特征列表首选格式的问询
关于406 Not Acceptable响应负载格式的解答
首先来说406响应的负载格式要求:
根据RFC7231第6.4.1节的规定,当服务器返回406 Not Acceptable时,响应的payload必须包含可用表示的特征列表,以及每个特征对应的资源标识符——核心目的是让用户或者用户代理能从中挑选最合适的资源版本。另外,规范提到用户代理可以自动进行选择,但并没有定义这种自动选择的统一标准,具体逻辑由代理自行实现。
再说说可用表示特征列表的首选格式:
RFC并没有强制指定某个“官方首选格式”,不过在实际开发实践中,常用的格式主要分为两类:
- 面向人类用户:通常采用
text/html格式,把可用选项做成易读的带链接列表页面,方便用户手动点击选择。 - 面向机器代理:会使用结构化格式,比如
application/json或者application/hal+json(HAL格式,专门用于RESTful API的链接标准化),这样代理可以解析后自动处理资源选择逻辑。
一般情况下,服务器会优先根据请求中的Accept头,返回客户端声明能接受的格式;如果客户端没指定Accept头,多数服务器会默认返回text/html格式的页面。
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

