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文字でも構成されることを意味すると思います。