HTTP协议中关于压缩传输的规定
第一:客户端传输到服务器请求中带有:Accept-Encoding:gzip, deflate 字段,向服务器表示,客户端支持的压缩格式(gzip或者deflate),如果不发送改消息头,服务器是不会压缩的。
第二:服务端在收到请求之后,如果发现请求头中含有Accept-Encoding字段,并且支持该类型的压缩,就对响应报文压缩之后返回给客户端,并且携带Content-Encoding:gzip消息头,表示响应报文是根据该格式压缩过的。
第三:客户端接收到请求之后,先判断是否有Content-Encoding消息头,如果有,按该格式解压报文。否则按正常报文处理。
服务端实现报文压缩
一般http容器都有配置实现压缩的,不需要代码实现
[nginx实现压缩,在nginx.conf中配置]
#开启缓存
gzip on;
#启动压缩的最小报文大小
gzip_min_length 1k;
#压缩所使用的缓存
gzip_buffers 4 16k;
#压缩等级1表示最快,9表示最好
gzip_comp_level 2;
#压缩支持的content-Type类型
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;
[apache实现压缩,在httpd.conf中配置]
#启动deflate模块