Допустимо ли для qvalue быть "1" или "0" на основе RFC7231 (HTTP 1.1)?

Допустимо ли для QVALUE значение "1"? или "0" скажем, в заголовке Accept-Language? например Accept-Language: en;q=1. или же Accept: text/plain;q=0.

RFC7231 (и RFC2616), который определяет ABNF для QVALUE следующим образом:

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

И указывает "ABNF" следующим образом:

    <a>*<b>element

где <a> а также <b> необязательные десятичные значения, указывающие как минимум <a> и самое большее <b> вхождения элемента.

Кажется, это подразумевает, что 0 или более цифр после десятичной точки являются приемлемыми, предполагая, что "1" и "0" действительны QVALUE. Тем не менее, моя интуиция говорит мне, что это недопустимые числа с плавающей запятой.

Я искал высоко и низко, и я не могу найти примеры, которые демонстрируют это.

1 ответ

Решение

Да, ABNF позволяет это. Если во время тестирования вы обнаружите, что он не работает, было бы полезно сообщить об этом рабочей группе IETF HTTP (чтобы будущая версия спецификации могла предупредить об этом).

Другие вопросы по тегам