首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTP协议使用哪种编码?

HTTP协议使用哪种编码?
EN

Stack Overflow用户
提问于 2009-05-03 22:02:32
回答 2查看 16.1K关注 0票数 37

当浏览器向web服务器发送HTTP请求时,使用什么编码对网络上的HTTP协议进行编码?是ASCII吗?UTF8?或者是UTF16?或者它是否以预定义的格式指定使用哪种编码(在进行任何解码之前?)

附注:我不是问请求/响应的实际有效负载(例如HTML)。我问的是请求行(即GET /index.html HTTP/1.1)和头(即Host: google.com)的信息。

EN

回答 2

Stack Overflow用户

发布于 2009-05-03 22:28:28

HTTP 1.1使用US-ASCII作为请求中的request line、响应中的status line (reason phrase除外)和field names的基本字符集,但允许字段值和message body中的任何八位字节。

票数 34
EN

Stack Overflow用户

发布于 2009-05-03 22:25:51

RFC 2616包括以下内容:

代码语言:javascript
复制
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)>

然后,文档中的几乎所有其他内容都是根据这些实体(OCTETCHAR等)定义的。因此,您可以查看RFC以找出HTTP请求/响应的哪些部分可以包含ASCII;所有其他部分必须是OCTET。(我会自己做,但会花很长时间)

具体地说,对于请求行,方法名和HTTP版本将只包含ASCII字符,但URL本身也可能包含非ASCII字符。但是如果你看看RFC 2396,它会说。

URI是一个非常有限的集合中的一系列字符,即基本拉丁字母表中的字母、数字和一些特殊字符。

我猜这意味着它也将由ASCII字符组成。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/818122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档