multipart和chunked协议之间的区别

问题描述 投票:15回答:2

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

http chunked-encoding chunked http-chunked
2个回答
16
投票

更直观地说,

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

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

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


9
投票

协议也不是。 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标头字段)

Transfer-Encoding通用标头字段指示已将哪种(如果有)转换类型应用于邮件正文,以便在发件人和收件人之间安全地进行转换。这与内容编码的不同之处在于传输编码是消息的属性,而不是实体的属性。

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

© www.soinside.com 2019 - 2024. All rights reserved.