RFC 2616 включает в себя:
OCTET = <any 8-bit sequence of data>
CHAR = <any US-ASCII character (octets 0 - 127)>
UPALPHA = <any US-ASCII uppercase letter "A".."Z">
LOALPHA = <any US-ASCII lowercase letter "a".."z">
ALPHA = UPALPHA | LOALPHA
DIGIT = <any US-ASCII digit "0".."9">
CTL = <any US-ASCII control character
(octets 0 - 31) and DEL (127)>
CR = <US-ASCII CR, carriage return (13)>
LF = <US-ASCII LF, linefeed (10)>
SP = <US-ASCII SP, space (32)>
HT = <US-ASCII HT, horizontal-tab (9)>
<"> = <US-ASCII double-quote mark (34)>
И тогда почти все остальное в документе определяется в терминах этих сущностей (OCTET
, CHAR
и т. Д.). Таким образом, вы можете просмотреть RFC, чтобы выяснить, какие части HTTP-запроса / ответа могут включать OCTET
s; все остальные части должны быть в формате ASCII. (Я бы сделал это сам, но это заняло бы много времени)
В частности, для строки запроса имя метода и версия HTTP будут состоять только из символов ASCII, но вполне возможно, что сам URL-адрес может включать не-ASCII-символы. Но , если вы посмотрите на RFC 2396 , он говорит, что.
URI - это последовательность символов из очень ограниченного набора, то есть букв основного латинского алфавита, цифр и нескольких специальных символов.
То, что я предполагаю, означает, что оно будет также состоять из символов ASCII.