请求解析RFC 5987语法规则中不同场景下"*"的含义
关于RFC 5987中
parmname和mime-charset规则里*含义的解答 要搞清楚这个问题,得先回忆一下RFC文档里通用的ABNF(扩充巴科斯范式)语法规则——这是这类标准定义语法的常规方式:
- 在
parmname = 1*attr-char和mime-charset = 1*mime-charsetc这两条规则里,*是ABNF的重复操作符,不是字面意义上的星号字符。 - 具体来说,
1*element这种写法表示前面的元素(这里就是attr-char和mime-charsetc)可以被重复至少1次、最多无限次。换成人话解释就是:parmname必须由1个或多个attr-char字符组成mime-charset必须由1个或多个mime-charsetc字符组成
而你提到的ext-parameter = parmname "*" LWSP "=" LWSP ext-value里的*是字面量星号——在ABNF语法中,双引号包裹的内容代表要匹配的实际字符,所以这里的*就是请求头里实际出现的那个星号(比如你举的例子title*=iso-8859-1'en'%A3%20rates里的*),和前面两个规则里的语法操作符完全是两回事。
内容的提问来源于stack exchange,提问作者guo
相关产品推荐
相关产品推荐

