23

有专家能解释一下两者的区别吗?分块是流协议而多部分不是吗?使用多部分有什么好处?

4

2 回答 2

21

更直观的是,

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

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

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

于 2014-05-19T22:29:53.300 回答
11

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

您可以在超文本传输​​协议 1.1下阅读有关分块和多部分的更多信息

Chunked 是第 3.6 节传输编码中的传输编码。

Multipart 是第 3.7.2 节 Multipart Types 3.7 Media Types 的小节中的一种媒体类型。

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

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

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

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

于 2013-12-02T19:14:01.507 回答