qvalue 为“1”是否可以接受。或“0”。基于 RFC7231 (HTTP 1.1)?

Is it acceptable for the qvalue to be "1." or "0." based on RFC7231 (HTTP 1.1)?

QVALUE 为“1”是否可以接受。或“0”。例如,在 Accept-Language header?例如Accept-Language: en;q=1.Accept: text/plain;q=0.

RFC7231(和 RFC2616)指定 ABNF for QVALUE as follows:

weight = OWS ";" OWS "q=" qvalue
qvalue = ( "0" [ "." 0*3DIGIT ] )
       / ( "1" [ "." 0*3("0") ] )

并指定"ABNF" as follows:

    <a>*<b>element

where <a> and <b> are optional decimal values, indicating at least <a> and at most <b> occurrences of the element.

这似乎暗示小数点后0位或更多位是可以接受的,暗示“1”。和“0”。是有效的 QVALUE。但是,我的直觉告诉我这些不是有效的浮点数。

我到处搜索,找不到任何例子来证明这一点。

是的,ABNF 允许。如果您在测试期间发现它不起作用,那么向 IETF HTTP 工作组报告会很有用(以便规范的未来版本可以警告不要使用它)。