当前位置: 首页 > news >正文

gzip原理小透明 | Web高能短文系列

web服务器打开gzip,可以极大的减小http传输数据大小,从而减少请求的响应时间,对于请求量大的公司来说,可以省下一大笔开支。

那打开gzip为什么可以压缩数据呢?

因为gzip用了两种压缩算法:LZ77和Huffman编码。

  • LZ77
    这种算法类似正则的贪婪算法,比如我们又一段数据ABCDEFGADABCDEFG,这边会出现ABCDEFG的重复数据段,那后面重复段落,用相同段落距离和长度就可以表示,这边的话可以缩小长度为ABCDEFGAD(10,7)
  • Huffman编码
    我找到一篇极易理解的文章来学习它 HUFFMAN 编码压缩算法

gzip就是先用LZ77再用Huffman来实现压缩的。

然后提醒大家并不是所有请求打开gzip都是更好的。

比如说图片、PDF等资源文件请求打开gzip反而会增大响应时间和浪费cpu计算,为什么呢?
因为图片等资源本来也就已经用了压缩算法,再通过gzip算法压缩一遍,不但无法再压缩内容,反而会增大文件头尾信息部分,且浪费gzip压缩时的计算成本。

那最后再放两个文章引索:

  • gzip原理与实现
  • 图片要启用gzip压缩吗?绝对不要!

相关文章:

  • 安卓学习-界面-ui-AdapterViewFlipper和StackView
  • Android之父下的作品Essential Phone停产,接下来呢?
  • 动态规划以及在leetcode中的应用
  • canvas绘制圆角头像
  • 第一个ServiceStack程序
  • OSChina 周六乱弹 —— 舔狗是没有好下场的
  • 英菲利普亲王车祸后确认未受伤 事发道路下调限速
  • Linux下修改MySQL的用户(root)的密码
  • 20140912-事件与委托
  • Greenplum -- 资源队列管理
  • C++范畴下测试数据类型的范围整理
  • iOS UIWebView截获html并修改便签内容
  • MySQL报错解决:ERROR! The server quit without updating
  • Jsp forward plugin的操作和方法
  • SQL手工注入漏洞测试(Sql Server数据库)
  • canvas 绘制双线技巧
  • hadoop集群管理系统搭建规划说明
  • Linux快速复制或删除大量小文件
  • Python利用正则抓取网页内容保存到本地
  • 产品三维模型在线预览
  • 订阅Forge Viewer所有的事件
  • 关于 Cirru Editor 存储格式
  • 目录与文件属性:编写ls
  • 思维导图—你不知道的JavaScript中卷
  • 鱼骨图 - 如何绘制?
  • 2017年360最后一道编程题
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • (1)常见O(n^2)排序算法解析
  • (算法)求1到1亿间的质数或素数
  • (一) springboot详细介绍
  • (转) 深度模型优化性能 调参
  • (转载)(官方)UE4--图像编程----着色器开发
  • *2 echo、printf、mkdir命令的应用
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .Net中的集合
  • .sdf和.msp文件读取
  • @Valid和@NotNull字段校验使用
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯
  • [Android]常见的数据传递方式
  • [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [C#]DataTable常用操作总结【转】
  • [Cocoa]iOS 开发者账户,联机调试,发布应用事宜
  • [Contiki系列论文之2]WSN的自适应通信架构
  • [dfs] 图案计数
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案
  • [echarts] y轴不显示0
  • [JavaWeb学习] Spring Ioc和DI概念思想
  • [Matlab有限元分析] 2.杆单元有限元分析
  • [mit6.s081] 笔记 Lab2:system calls
  • [NOI2020统一省选 A] 组合数问题 (推式子)
  • [osgearth]通过API创建一个earth模型