2

当查询未在 RESTCONF 中使用任何支持的媒体类型指定时,是否有任何默认媒体类型?

4

2 回答 2

1

不,没有标准默认值。这是依赖于服务器实现的,所以不要依赖它。

来自draft-ietf-netconf-restconf-17,第 5.3 节,消息编码:

服务器必须支持 [RFC7231] 中定义的“Accept”头域和“406 Not Acceptable”状态行。客户端将接受的响应输出内容编码格式由请求中的 Accept 标头字段标识。如果未指定,则应使用请求输入编码格式,或者服务器可以选择任何支持的内容编码格式。

如果没有请求输入,则默认输出编码为 XML 或 JSON,具体取决于服务器首选项。请求中编码的文件扩展名不用于识别格式编码。

并且来自draft-ietf-netconf-restconf-17,第 7.1 节,错误响应消息:

客户端应该通过在 Accept 标头中指定适当的媒体类型来为响应消息指定所需的编码。如果客户端没有指定 Accept 头,那么应该使用在请求消息中使用的相同的结构化语法名称后缀,或者服务器可以选择任何支持的消息编码格式。如果没有请求消息,服务器必须根据服务器偏好选择“application/yang-data+xml”或“application/yang-data+json”。

于 2016-10-26T06:57:58.293 回答
1

正如@predi 所说,最终的 RFC 支持草案:

关于消息编码,第 5.2 节

如果没有请求输入,则默认输出编码为 XML 或 JSON,具体取决于服务器首选项。请求中编码的文件扩展名不用于识别格式编码。

错误消息响应,第 7.1 节

如果客户端没有指定“Accept”标头,那么应该使用请求消息中使用的相同结构化语法名称后缀,或者服务器可以选择任何支持的消息编码格式。如果没有请求消息,服务器必须根据服务器偏好选择“application/yang-data+xml”或“application/yang-data+json”。

于 2017-11-08T10:46:20.843 回答