根据HTTP规范,标题可以如下所示:
Header-Name=value1,value2,value3,...
我尝试解析标头值并将它们存储为数组:
array('value1', 'value2', 'value3')
到目前为止一切顺利。如果出现逗号,我可以将字符串标记为。
但是我应该如何处理这样的标题:
Expires=Thu, 01 Dec 1994 16:00:00 GMT
有一个逗号,但标题中有一个值。哦,我很容易想到这个规则:只有在逗号之前和之后有 no 空格时才用逗号分隔。这样两个示例都被解析正确。
但是然后我遇到了这样的标题:
Accept-Encding=gzip, deflate
现在?这是一个值array('gzip, deflate')
还是两个值array('gzip', 'deflate')
?对我来说,他们是两个独立的价值观,但我的上述规则不再适用。
是否有一个列表允许多次使用标题?所以我可以检查一个黑名单,以确定逗号是否意味着值分隔符?
答案 0 :(得分:4)
任何标题字段都可以出现逗号连接,即使是那些没有为其设计的标题字段;它是图书馆和中介机构如何发挥作用的。
设计用于使用列表语法的标头字段(RFC 7230具有所有详细信息)。
最后,您不能使用通用代码进行标记,因为逗号在值内的发生方式因字段而异。