根据RFC,在单词和分隔符之间使用* LWS是可以的。但是,如果您查看特定的ABNF以匹配Accept-Language字段,则它不允许;
字符周围的空格。
这是确切的LWS specification:
暗示* LWS :本规范描述的语法是 字为主。除非另有说明,否则线性空白区域(LWS)可以 被包含在任何两个相邻的单词之间(标记或引用字符串), 在相邻的单词和分隔符之间,不改变 解释一个领域。至少一个分隔符(LWS和/或 必须存在于任意两个令牌之间(用于定义) "令牌"因为它们会被解释为单一的 令牌。
以下是ABNF grammar:
Accept-Language = "Accept-Language" ":"
1#( language-range [ ";" "q" "=" qvalue ] )
language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )
答案 0 :(得分:0)
我发现有一个更新的RFC澄清了这一点。
weight = OWS ";" OWS "q=" qvalue
qvalue = ( "0" [ "." 0*3DIGIT ] )
/ ( "1" [ "." 0*3("0") ] )
https://greenbytes.de/tech/webdav/rfc7231.html#quality.values
因此,答案是肯定的,它是有效的。