通过HTTP传输文件

问题描述:

据我所知可以通过HTTP协议传输二进制文件。但是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协议中的附件相同?或者它是原始数据(是否有可能不会导致问题)

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

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

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

+0

但这是基于文本的协议,新行字符编码和字节顺序呢? –