有些专家可以解释两者之间的差异吗?是不是chunked是一个流协议而多部分不是?使用multipart有什么好处?
更直观地说,
分块是一种从服务器向客户端发送单个消息的方法,其中服务器不必等待生成整个响应,但可以在可用时发送分块(块)。现在这发生在数据传输级别,并且对客户端无动于衷。它恰当地是'Transfer-Encoding'类型。
多部分发生在应用程序级别,并在应用程序逻辑级别进行解释。在这里,服务器告诉客户端内容,即使它是一个响应主体,它具有不同的逻辑部分,并且可以相应地进行解析。再恰当地说,这是“Content-Type”的设置,因为客户应该知道它。
鉴于传输可以独立于内容类型进行分块,如果需要,可以使用服务器的分块编码来传输多部分http消息。
协议也不是。 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是数据的形状。