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.
Я знаю, что мы должны ** ожидать ** фразы, но вы имеете в виду, что это ** кроме ** - иона тоже? ;-) – Lucius