multipart和chunked协议之间的区别

use*_*635 18 http chunked chunked-encoding http-chunked

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

jay*_*dev 17

更直观地说,

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

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

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


doo*_*des 10

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

您可以在超文本传输​​协议1.1下阅读更多关于chunked和multipart的内容

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

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

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

从14.41开始(Transfer-Encoding标头字段)

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

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