5.2. 消息编码

根据[RFC7230],RESTCONF消息以HTTP编码。 所有消息都使用“utf-8”字符集。 RESTCONF消息内容在HTTP消息体中发送。

内容以JSONXML格式编码。 服务器必须支持XMLJSON编码之一。 服务器可以支持XMLJSON编码。 客户需要同时支持XMLJSON来与所有RESTCONF服务器进行互操作。

数据节点的XML编码规则在[RFC7950]中定义。 所有XML内容都使用相同的编码规则。 JSON编码规则在[RFC7951]中定义。 额外的元数据JSON编码规则在[RFC7952]中定义。 这种编码是有效的JSON,但它也有特殊的编码规则来识别模块命名空间并提供一致的YANG数据类型处理。

请求输入内容编码格式用“Content-Type”标题字段标识。如果消息体是由客户发送的,那么这个字段必须存在。

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

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

客户端可以通过在“Content-Type”和/或“Accept”头字段中使用特定格式发送请求来确定RESTCONF服务器是否支持编码格式。如果服务器不支持请求的请求输入编码,那么它务必返回一个带有“415 Unsupported Media Type”状态行的错误响应。如果服务器不支持请求的任何请求的输出编码,那么它务必返回一个带有“406 Not Acceptable”状态行的错误响应。