与http请求标头值的格式混淆?

时间:2012-06-06 12:51:08

标签: c http

根据3.11节中的rfc2616,实体标签的格式如下:

entity-tag = [weak] opaque-tag

弱=“W /”

opaque-tag = quoted-string

在rfc2616第14.24节中给出的条件“If-match”的示例如下:

If-Match:“xyzzy”

If-Match:“xyzzy”,“r2d2xxxx”,“c3piozzzz”

如果匹配:*

我正在用c做一个项目,在那里我将解析来自不同客户端的http请求。 Web服务器也是用c编写的,我可以从Web服务器获取请求标头和值const char*并解析它们。但令我困惑的是,标题"If-match"中的值与"xyzzy, r2d2xxxx ,c3piozzzz"类似,或者它与""xyzzy", "r2d2xxxx", "c3piozzzz""类似?你知道哪一个是对的吗?如果它有一个实体列表,那么If-Match标头值中的每个etags之间肯定会有空格吗?我的意思是格式是以下类型吗?

If-Match:“one-entity-tag”,[space]“second-entity-tag”,[space]“third-entity-tag”

如果它有一个etags列表,则没有If-Match标头值格式的描述。 rfc2616只给出了一个例子(我在上面展示过)。那个例子可靠吗?

1 个答案:

答案 0 :(得分:1)

您可以信任规范和示例:双引号实际上是ETag的一部分。