multipart和chunked协议之间的区别

时间:2013-12-02 18:03:41

标签: http chunked-encoding chunked http-chunked

有些专家可以解释两者之间的差异吗?是不是chunked是一个流协议而多部分不是?使用multipart有什么好处?

2 个答案:

答案 0 :(得分:15)

更直观地说,

Chunking是一种从服务器向客户端发送单个消息的方法,其中服务器不必等待生成整个响应,但可以在可用时发送片段(块)。现在这发生在数据传输级别,并且对客户端无动于衷。它恰当地是“转移编码”类型。

多部分发生在应用程序级别,并在应用程序逻辑级别进行解释。在这里,服务器告诉客户端内容,即使它是一个响应主体,它具有不同的逻辑部分,并且可以相应地进行解析。再恰当地说,这是“Content-Type”的设置,因为客户应该知道它。

鉴于传输可以独立于内容类型进行分块,如果需要,可以使用服务器的分块编码来传输多部分http消息。

答案 1 :(得分:8)

也不是协议。 HTTP是协议。事实上,HTTP中的P代表协议。

您可以在Hypertext Transfer Protocol 1.1

下阅读有关chunked和multipart的更多信息

Chunked是3.6转移编码中的转移编码。

Multipart是3.7.2多部分类型3.7媒体类型的子部分中的媒体类型。

Chunked还会影响协议的其他方面,例如4.4中指定的内容长度,因为当无法预先确定消息长度时(主要是在传递动态内容时),必须使用chunked。

从14.41(转移编码标题字段)

  

Transfer-Encoding general-header字段表示什么(如果有的话)   转换类型已按顺序应用于邮件正文   在发件人和收件人之间安全地转移它。这个   与内容编码的不同之处在于传输编码是a   消息的属性,而不是实体的属性。

更简单地说,分块是传输数据块的方式,而multipart是数据的形状。