浏览器控制台看一下RequestHeader有一个Accept-Encoding,而RespondHeaders中也会有一个Content-Encoding和他进行对应.

Accept-Encoding当我们的浏览器发起一个文件的请求时告诉服务器支持哪几种压缩方式,也就是服务器用这几种压缩方式浏览器都能解压,当服务器接收到请求后,知道浏览器支持的压缩方式,服务器就会自动识别其中一种进行压缩并且告诉浏览器自己用了哪个方式压缩,浏览器知道后就知道用哪种对应方式解压了

根据拓展名限制一下支持的几钟压缩类型

defaultConfig.js

压缩方法 compress,js

//压缩的方法
/**rs 肯定需要,要知道自己需要压缩什么 客户端(浏览器支持哪几种压缩类型),
* req 客户端再requestHeader中声明的
* res 压缩完成之后,需要告诉浏览器使用哪种压缩类型压缩,方便浏览器用对应方式进行解压
* */
const {
createGzip,
CreateDeflate
} = require('zlib')
module.exports = (rs, req, res) => {
const acceptEncoding = req.headers['accept-encoding'];
/* 有两种情况不能压缩
1.浏览器已经声明不支持任何压缩方式,拿不到这个信息
2.拿到的东西里面没有服务器支持
*/
if (!acceptEncoding || !acceptEncoding.match(/\b(gzip|deflate)/)) {
return rs
} else if (acceptEncoding.match(/\bgzip\b/)) {
{
res.setHeader('Content-Encoding', 'gzip')
return rs.pipe(createGzip())
}
}else if (acceptEncoding.match(/\bdeflate\b/)) {
{
res.setHeader('Content-Encoding', 'deflate')
return rs.pipe(createGzip())
}
}
}

route.js 引用compress

运行结果

如果把相关压缩的代码注释掉

最新文章

  1. 实践 Neutron 前的两个准备工作 - 每天5分钟玩转 OpenStack(78)
  2. eclipse怎样在线安装hibernate tools插件并使用
  3. 虚拟主机无法使用fsockopen操作处理方法
  4. 20款最优秀的JavaScript编辑器
  5. Firefox中Vimperator插件配置
  6. jquery 当前页导航高亮显示
  7. 华为C8816电信版ROOT过程
  8. JS常用特效方法总结
  9. Unity运动残影技能
  10. PgSql on Docker with HaProxy 反向代理
  11. awk的+=用法
  12. [Swift]LeetCode713. 乘积小于K的子数组 | Subarray Product Less Than K
  13. allure--下的各装饰器的翻译及自己的总结
  14. Jprofiler监控远程jvm
  15. Git发生SSL certificate problem: certificate ha错误的解决方法
  16. Gym - 101911A "Coffee Break"
  17. python --------------网络(socket)编程
  18. 函数后面跟throw
  19. SharePoint Framework 配置你的SharePoint客户端web部件开发环境
  20. html08

热门文章

  1. zip的压缩和解压命令
  2. 理解Redis单线程运行模式
  3. ggforce|绘制区域轮廓-区域放大-寻找你的“onepiece”
  4. Fortran数组、函数--xdd
  5. Spring项目中优雅的异常处理
  6. 利用scrapy爬取腾讯的招聘信息
  7. Selenium WebDriver 中鼠标事件
  8. 从两个List集合里找到相同部分和不同部分
  9. ibatis入门实例(完整)
  10. 09-kubernetes StatefulSet