7

据我所知,可以通过 HTTP 协议传输二进制文件。但是 HTTP 是基于文本的协议,典型的 HTTP 响应帧如下所示:

HTTP/1.1 200 OK
Date: Wed, 23 May 2012 22:38:34 GMT
Content-Length: 438
Content-Type: text/html; charset=UTF-8

Here goes content

如果是这样,二进制文件应该如何在这个帧中编码?什么是内容类型?使用 base64 编码的内容是否与 POP3 协议中的附件相同?或者它是原始数据(如果是这样,是否可能不会引起问题?)

4

2 回答 2

9

标头字段是基于文本的,但实际有效负载是二进制的。你可以转移任何你想要的东西。

不,它与 Content-Type 没有任何关系。那只是一个标签,以便接收者知道如何处理数据;它不会影响协议本身的格式。

于 2012-05-23T20:29:37.047 回答
0

二进制文件通常使用 Application/octet-stream mimetype 传输(当然,除非它们匹配另一个更具体的 mimetype)。对于传输,您使用原始数据 - 不需要 base64。

于 2012-05-23T19:12:08.437 回答