问题描述
浏览器访问文本类文件时,CDN 服务器没有响应gzip 压缩?
问题分析
对于文本类文件,gzip 是常见的压缩协议,可以有效的减少服务带宽。当我们请求文本类的文件时,没有响应 gzip 协议,一般会有以下几种情况。
- CDN 服务没有配置 智能压缩 功能
- CDN 服务没有配置智能压缩,同时源站不支持压缩功能。
- 客户端不支持压缩功能,没有发送对应压缩请求头信息。
解决方案
- 在 CDN 配置开启智能压缩服务。
2.在CDN 没有配置只能压缩,如果源站支持压缩响应的话,也可以正常进行gzip响应? 以nginx 为例,可以在nginx 配置文件中开启gzip压缩
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
3.目前的浏览器请求文本类文件是均默认支持gzip 协议,Brotli 作为 Google 2015年新推出的压缩算法,目前绝大多数主流浏览器已经支持以上两种压缩算法。当我们使用测试工具进行测试时,需要携带类似于浏览器的头部才能得到正确的响应。 如使用curl进行测试时,需要添加以下请求信息:
curl -I https://www.example.com/f2bb5d9d0894ed2bf86f.js
-H 'accept-encoding: gzip, deflate, br'