Transfer-Encoding:用于指定传输报文主体时使用的编码方式,属于逐跳首部,即只在两个节点间有效。
TE:用于告知服务器客户端能够处理的编码方式和相对优先级,属于逐跳首部,即只在两个节点间有效。
Content-Encoding:用于指定报文主体已经采用的编码方式,属于端到端首部,即在整个传输过程中有效。
Accept-Encoding:用于告知服务器客户端能够处理的编码方式和相对优先级,属于端到端首部,即在整个传输过程中有效。
很显然,Transfer-Encoding和TE是一组,Content-Encoding和Accept-Encoding是一组。
根本区别在于,Content-Encoding和Accept-Encoding限制的是报文主体在整个传输过程中使用的编码方式,全局有效;Transfer-Encoding和TE限制的是报文主体在两个节点间(源服务器和代理服务器之间、代理服务器和客户端之间等)传输时使用的编码方式,只在两节点间有效。举例说明:
假设A为服务器,D为客户端,从A到D的路径为A-B-C-D,所需传输的资源为X。步骤如下:
(1)D向A请求X,并在请求报文中指明自己支持的编码方式为gzip;
Accept-Encoding