验证XML2RFC文档中的HTTP消息
rfc-http-validate的Python项目详细描述
rfc http验证
这是一个简单的脚本,用于验证xml2rfcv3文档中的HTTP消息(可能包含Structured Fields)。在
RFC XML中的HTTP消息
此脚本检查所有sourcecode
和artwork
元素;当一个元素的type
时
http-message
,它检查内容:
- 或者,从有效的HTTP/1/1请求或状态行开始
- 有一个或多个HTTP/1.1头字段行,可能有行折叠(这样就可以在RFC格式的约束下格式化长行)
- (可选)具有一个响应正文,用一个空行与标题字段分隔开
开始行将检查方法或状态代码是否合理,版本标识符HTTP/1.1
是否正确。但是,请求中的URL将不会被验证。在
头字段将被验证为常规语法。此外,使用结构化类型信息(见下文)配置的头字段名将根据该类型进行验证。在
例如
<sourcecodetype="http-message"> Foo: bar; baz Foo: one, two </sourcecode>
。。。将被验证为具有单个字段foo
,值为bar; baz, one, two
。在
主体(如果存在)当前被忽略(即,Content-Length
未被选中)。在
请注意,在XML中,行首的不能有任何空格,除非它们是前几行的延续(如上图所示,折叠)。在
如果存在RFC8792 \\
包装头,将首先展开行(即,在展开之前,如上所述)。这对于包含二进制内容(不能包含空格)的长行很有用;例如
配置字段的结构化类型信息
对于已验证的结构化字段,可以在命令行或配置文件中传递字段名称的类型信息(即列表、字典或项)。在
要在命令行上传递类型,请使用--list
、--dictionary
或--item
参数,后跟字段名。例如:
rfc-http-validate.py --list Foo --list Bar --item Baz my_draft_.xml
这里,Foo
和{
或者,您可以在JSON文件中收集这些信息,顶级对象键是字段名,它们的值是list
、dict
或{sf.json
中表示为:
{"Foo":"list","Bar":"list","Baz":"item"}
。。。然后像这样传给脚本:
rfc-http-validate.py --map sf.json my_draft.xml
安装
该脚本需要Python 3,可以与pip一起安装:
pip3 install rfc-http-validate
- 项目
标签: