NoteDeep
内容编码(主体的属性):比如gzip压缩,content-length是压缩后的主体字节长度。响应头会有:Content-encoding: gzip

传输编码(报文的属性):也是一种可逆变换。对于内容编码来说,只是对报文的主体部分进行了编码。而对于经过传输编码的报文来说,编码作用在整个报文上,报文自身结构发生了改变。响应头会有Transfer-encoding: chunked

分块编码:把报文分割成若干个大小已知的块,块之间紧挨着发送。分块编码是一种传输编码。

如果不是持久连接,客户端就不需要知道它正在读取的主体的长度,只要读到服务器关闭连接为止。如果是持久连接,在服务器写主体之前,必须知道它的大小并在Content-Length首部中发送。如果服务器动态创建内容,就可能在发送前不知道主体的长度,分块编码允许服务器把主体逐块发送,说明每块的大小就可以了。

内容编码和传输编码可以同时使用。

客户端在If-None-Match首部中使用的是它所持有的页面版本的唯一标识,这个标识是之前服务器响应时在响应头里发送的。如果服务器页面最新版本标识和这个ETag不同,就把这个页面的最新版本发给我。

差异编码:是Http协议的一个扩展,它通过交换对象改变的部分而不是完整的对象来优化传输性能。




评论列表