HTTP中的二进制模式?

HTTP中的二进制模式?,http,networking,binary,Http,Networking,Binary,直到今天,我还认为HTTP是一种纯文本协议 现在我转到Windows中的Telnet并键入: telnet reactos.org 80 GET /favicon.ico HTTP/1.0 按两次“输入”,查看以下内容: 这绝对不是Base64 HTTP真的支持二进制传输吗?我找不到任何与此相关的文档。HTTP协议是基于文本的,但消息体由标题中指定的内容类型定义。在您的例子中,内容类型是图像/x图标,它是一种二进制格式 还要注意,编码和基于文本的协议是不相关的。仅当编码为ASCII时,才需

直到今天,我还认为HTTP是一种纯文本协议

现在我转到Windows中的Telnet并键入:

telnet reactos.org 80

GET /favicon.ico HTTP/1.0
按两次“输入”,查看以下内容:

这绝对不是Base64


HTTP真的支持二进制传输吗?我找不到任何与此相关的文档。

HTTP协议是基于文本的,但消息体由标题中指定的内容类型定义。在您的例子中,
内容类型
图像/x图标
,它是一种二进制格式

还要注意,编码和基于文本的协议是不相关的。仅当编码为ASCII时,才需要Base-64。默认的
内容编码
标识
(无压缩,无修改)。使用另一种
内容编码
,即使文本
内容类型
:也会在正文中获得二进制数据,因为它们会被压缩