Что считается пробелом в заголовке HTTP - PullRequest
0 голосов
/ 04 мая 2018

Я только что прочитал стандарт HTTP ( придерживался стандарта , если быть более точным) часть 1 и запутался в том, что они считают «пробелами» в разделе 3, со второго по последний абзац: https://tools.ietf.org/html/rfc7230#section-3

Поскольку возврат (CRLF) завершает заголовок HTTP, единственными пробелами, которые могут подразумеваться, являются 0x20 символы «Пробел». В Википедии перечислены другие типы символов ASCII, такие как «неразрывный пробел» 0xA0, поэтому я до сих пор не понимаю эту концепцию («пробел»).

Пожалуйста, помогите мне понять, что это на самом деле означает в рамках этого стандарта.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

RFC 7230, на который вы ссылаетесь, определяет ТОЧНО, что он считает пробелами в заголовке:

HTTP-message   = start-line
                 *( header-field CRLF )
                 CRLF
                 [ message-body ]

header-field   = field-name ":" OWS field-value OWS

field-name     = token
field-value    = *( field-content / obs-fold )
field-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]
field-vchar    = VCHAR / obs-text

obs-fold       = CRLF 1*( SP / HTAB )
               ; obsolete line folding
               ; see Section 3.2.4

obs-text       = %x80-FF

OWS            = *( SP / HTAB )
               ; optional whitespace

Как видите, SP (пробел) и HTAB (горизонтальная табуляция) являются только определенными пробельными символами. Они определены в RFC 5234 Приложение B.1 , на которое RFC 7230 ссылается:

HTAB           =  %x09
               ; horizontal tab

SP             =  %x20
0 голосов
/ 04 мая 2018

1) См. Также https://tools.ietf.org/html/rfc7230#section-3.2.3.

2) HTAB также является пробелом.

3) В контексте Раздела 3 «Отправитель НЕ ДОЛЖЕН отправлять пробел между строкой начала и первым полем заголовка». также относится к дополнительным разрывам строк.

...