我有一个关于Content-Encoding和Transfer-Encoding用法的问题:
请让我知道我的理解是否正确:
客户端在其请求中可以使用accept-encoding头指定它愿意接受哪些编码类型。因此,如果服务器希望在传输之前对消息进行编码,例如gzip,则可以压缩实体(内容)并添加content-encoding:gzip,然后发送HTTP响应。在接收时,客户端可以接收、解压缩并解析实体。
在传输编码的情况下,客户端可以指定它愿意接受哪种编码并执行即时操作。也就是说,如果客户端发送TE:gzip; q = 1,则表示如果服务器愿意,它可以发送一个带有Transfer-Encoding:gzip的200 OK,并在尝试发送流时进行压缩并发送,客户端在接收内容时可以即时解压缩并执行其解析。
我的理解正确吗?请评论。
此外,即时压缩实体与先压缩实体再传输的基本优势是什么? Transfer-Encoding是否仅适用于分块响应,因为我们不知道在传输之前实体的大小?