Я прочитал раздел 3.2 rfc7230. После удаления устаревших правил, спецификация поля заголовка:
header-field = field-name ":" OWS field-value OWS
field-name = token
field-value = *field-content
field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
field-vchar = VCHAR
VCHAR = %x21-7E; visible (printing) characters
Я смущен определением field-content
. Кажется, что он соответствует 1 или 2 VCHAR
с, с любым количеством пробелов между ними, но он не будет совпадать с другим пробелом после field-content
совпадения.
Например, для name:a<sp>b<sp>c
, field-name
будет соответствовать name
, но field-content
будет соответствовать a<sp>b
, и тогда следующий <sp>
не может быть сопоставлен другим field-content
, таким образом, этот заголовок недействителен .
Однако name:a<sp>bc<sp>d
действителен, потому что есть два совпадения для field-content
, a<sp>b
и c<sp>d
.
Я думаю, что это противоречиво. Это предназначено или я что-то неправильно понял?