有些专家可以解释两者之间的差异吗?是不是chunked是一个流协议而多部分不是?使用multipart有什么好处?
答案 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是数据的形状。