nginx使用gzip压缩文件---lz77算法---Haffman编码

Nginx(13)-数据压缩是显著提升性能最简单方式 压缩数据是一个重要的、潜在的性能加速器。图片(JPEG 和 PNG)、视频 (MPEG-4)和音乐 (MP3) 等文件都有着精心打造和非常高效的压缩标准,其中任何一个标准都可以将文件缩小一个数量级甚至更多。而HTML(包括纯文本和 HTML 标签)、CSS 和代码(如 JavaScript)等文本数据经常在不压缩的情况下进行传输。压缩这些数据可能会对可感知到的 Web 应用性能产生特别明显的影响,尤其是对速度缓慢或移动连接受限的客户端来说。 阅读详情

为了提高页面的响应速度,可以从设置 nginx 的 gzip 和缓存这2方面入手,而为ttf,js,css等文件开启 gzip 和缓存能大大减少带宽的消耗.

HTTP 的内容编码机制

Accept-Encoding 和 Content-Encoding 是 HTTP 中用来对[采用何种编码格式传输正文]进行协定的一对头部字段.
它的工作原理是这样:

浏览器发送请求时,通过 Accept-Encoding 带上自己支持的内容编码格式列表;
服务端从中挑选一种用来对正文进行编码,并通过 Content-Encoding 响应头指明选定的格式;
浏览器拿到响应正文后,依据 Content-Encoding 进行解压.
当然,服务端也可以返回未压缩的正文,但这种情况不允许返回 Content-Encoding;
这个过程就是 HTTP 的内容编码机制.

Accept-Encoding,作为请求首部字段,可以一次性指定多种内容编码,比如:

1.gzip
	由文件压缩程序gzip(GNU zip)生成的编码格式(RFC1952),采用Lempel-Ziv算法(LZ77)及32位冗余校验(Cyclic Redundancy Check,统称CRC);
	文章后面会统一介绍gzip的算法;
2.compress
	由UNIX文件压缩程序compress生成的编码格式,采用Lempel-Ziv-Welch算法(LZW);
3.deflate
	组合使用zlib格式(RFC1950)及由default压缩算法(RFC1951)生成的编码格式;
4.identity
	不执行压缩或者不会变化的默认编码格式.

Content-Encoding作为实体首部字段,采用的内容编码格式和Accept-Encoding是相对应的.

在nginx上添加以下逻辑,用来压缩字体文件,以达到节省网络带宽,提高网站速度的作用.

	#字体有很多格式,为匹配字体格式的文件进行压缩设置
	#就是拦截这种请求,然后压缩:www.test.com/dist/aabbccddeeffgg.ttf
	location ~* ^/dist/.+\.(eot|ttf|otf|woff|svg)$ {
        #不缓存
        expires                 0;
        
        #增加type对应类型
        types {
            application/vnd.ms-fontobject eot;
            font/ttf ttf;
            font/opentype otf;
            font/x-woff woff;
            image/svg+xml svg;
        }
        # 开启gzip
        gzip  on;
        # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
        gzip_min_length 1k;
        # 设置压缩所需要的缓冲区大小
        gzip_buffers 4 16k;
        #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
        gzip_http_version 1.0;
        #压缩等级 1-9 等级越高,压缩效果越好,节约宽带,但CPU消耗大
        gzip_comp_level 3;
        # 进行压缩的文件类型,默认就已经包含text/html。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
        gzip_types font/ttf font/opentype font/x-woff image/svg+xml;
        # 是否在http header中添加Vary: Accept-Encoding,建议开启
        gzip_vary on;
        # 禁用IE 6 gzip , 因为IE6的某些版本对gzip的压缩支持很不好,会造成页面的假死
        gzip_disable "MSIE [1-6].";
    }

测试结果:

这里写图片描述

用curl测试gzip是否开启成功

curl -I -H "Accept-Encoding: gzip, deflate" "http://www.test.com/dist/aabbccddeeffgg.ttf"
gzip未开启:

TP/1.1 200 OK
Server: JDWS/1.0.0
Date: Tue, 21 Aug 2018 01:49:24 GMT
Content-Length: 18520
Connection: close
Last-Modified: Mon, 20 Aug 2018 09:40:38 GMT
Accept-Ranges: bytes
Expires: Tue, 21 Aug 2018 01:49:24 GMT
Cache-Control: max-age=0
gzip开启:

TP/1.1 200 OK
Server: JDWS/1.0.0
Date: Tue, 21 Aug 2018 01:48:10 GMT
Content-Type: font/ttf
Last-Modified: Fri, 10 Aug 2018 06:13:07 GMT
Connection: close
Vary: Accept-Encoding
Expires: Tue, 21 Aug 2018 01:48:10 GMT
Cache-Control: max-age=0
Content-Encoding: gzip

gzip压缩算法:

gzip是一种数据压缩格式,或者说是一种文件格式,用.gz结尾;
gzip可以极大的加速网站.有时压缩比率高达80%,一般最少都有40%左右;
对于要压缩的文件,使用gzip,主要分为两步:
1.使用LZ77压缩算法进行压缩,得到初始结果;
2.使用Haffman编码对初始结果进行再压缩,得到最终结果.

详细说下这两种算法:

LZ77算法
	这个算法是由Jacob Ziv 和 Abraham Lempel 于 1977 年提出,所以命名为 LZ77.

整体思路:
	我们认为是一段内容总会有重复的内容,后面重复的内容可以用两者之间的距离加内容长度联合替换,
	而替换后的内容的所占空间一般都会比原内容小,重复越多,压缩完空间就越小.
	
详细实现过程:
	先介绍三个概念:
		1.待编码区(字符从这里进来);
		2.已编码区(字符从这里出去,也叫缓冲区);
		3.滑动窗口(左边是已编码区,右边是待编码区,字符会从右向左依次被读取).
		|        滑动窗口       |
		|  已编码区   | 待编码区 |
		|             | a   a   b| c  b  b  a  b  c 
		
	再看看大概步骤:
		1.字符a从待编码区进来,此时a在待编码区的最左边;
		2.在待编码区查找从这个a字符在已编码区的最大匹配长度;
		3.如果能找到,就输出(偏移量m,最大匹配长度n),滑动窗口向右偏移n个位置;
			偏移量m就是待编码区的字符a到已编码区匹配到的字符a的移动距离;
			最大匹配长度n就是待编码区有多少连续字符可以在已编码区找到匹配的,这些连续字符的长度;
		4.如果找不到,就输出(0,0,a),滑动窗口向右偏移1位;
		5.直到待编码区为空,就停止编码,否则继续从2开始循环.

以上面的字符串为例,举个简单易懂的例子:
第一步:
a到待编码区的最左边了,在已编码区没有找到匹配的字符,输出(0,0,a),
如下图所示:
这里写图片描述
滑动窗口准备右移一位,到第二步.
第二步:
开始编码,待编码区的第一个字符是a,在已编码区查找匹配字符,找到了;
继续在待编码区读到ab两个字符,在已编码区查找匹配字符,没找到;
所以本次编码待编码区的第一个字符a,输出(1,1);
第一个1代表待编码区的a到已编码区的偏移量,偏移一位,记为1;
第二个1代表本次可编码的长度,因为只有一个a,所以记为1.
如下图所示:
这里写图片描述
滑动窗口准备右移一位,到第三步.
第三步:
待编码区第一个字符是b,在已编码区查找匹配字符,没找到;
同第一步,输出(0,0,b).
如下图所示:
这里写图片描述
滑动窗口准备右移一位,到第四步.
第四步:
待编码区第一个字符是c,在已编码区查找匹配字符,没找到;
同第一步,输出(0,0,c).
如下图所示:
这里写图片描述
滑动窗口准备右移一位,到第五步.
第五步:
待编码区第一个字符是b,在已编码区查找匹配字符,找到了;
待编码区前两个字符是bb,在已编码区查找匹配字符,没找到;
所以本次编码待编码区的第一个字符b,输出(2,1).
如下图所示:
这里写图片描述
滑动窗口准备右移一位,到第六步.
第六步:
待编码区第一个字符是b,在已编码区查找匹配字符,找到了;
待编码区前两个字符是ba,在已编码区查找匹配字符,没找到;
所以本次编码待编码区的第一个字符b,输出(3,1).
如下图所示:
这里写图片描述
滑动窗口准备右移一位,到第七步.
第七步:
待编码区第一个字符是a,在已编码区查找匹配字符,找到了;
待编码区前两个字符是ab,在已编码区查找匹配字符,找到了;
待编码区前三个字符是abc,在已编码区查找匹配字符,找到了;
这个例子待编码区只有三个字符的长度,实际会很长,就一直找,直到找不到匹配字符为止;
所以本次编码待编码区的前三个字符abc,输出(5,3).
如下图所示:
这里写图片描述
滑动窗口准备右移三位,到第八步.
第八步:
待编码区没有字符了,结束.
这里写图片描述

最终结果:
(0,0,a)(1,1)(0,0,b)(0,0,c)(2,1)(3,1)(5,3)
通过这个结果反向解码,也能得到原文:
aabcbbabc
而且解码比编码还要快很多,主要是因为少了匹配这一步.

Haffman编码
整体思路:
	我们知道,普通的编码都是定长的,比如ASCII编码,每个字符编码后的长度都是固定长度,
在解码的时候也就相对简单,只需按照定长将码解开,逐个翻译成对应的字符即可;
	而haffman采用的是可变长编码,目的是为了让出现次数多的字符采用更少的长度来存储,
这样就可能会大大加强压缩力度;
	haffman建立了树的概念,haffman树是一种二叉树,将所有符号都对应到树的叶子节点上,
每个叶子节点都是可以唯一表示的,都是用若干个0和1组成的;
	由于所有的字符最终都会落在叶子节点上,即任何字符的编码都不会是其他字符编码的前缀,
所以在解析的时候,也不会发生混淆的问题,因此haffman编码后的码,也是一种唯一可译码.
	
详细实现过程:
	1.先读所有文件,将所有内容中所有字符出现的次数统计出来做排序;
	2.我们将出现少的两个字符作为子节点,可以确定一个父节点,值就是两个子节点的次数和;
	3.将上一步的父节点当做一个子节点,再重复执行第二步,直到所有节点全部用完,构成一颗大树;
	4.每个数从父节点开始,默认左边的子节点是0,右边的子节点是1,
	  那么所有的字符对应的子节点都会有唯一的标识了;
	5.用这些唯一标识来代替原来的字符,就是编码后的结果;
	6.解码的时候,也是先根据所有字符的次数构成那颗大树,然后根据大树找出对应的字符即可.

举个简单易懂的例子:
比如文件的内容是:abbbbccccddde
我们可以统计出:
a出现1次;
b出现4次;
c出现4次;
d出现3次;
e出现1次;
第一步:
找出所有字符出现的次数.
如下图所示:
这里写图片描述
第二步:
找出两个最小次数的字符,构成一颗树;
a字符和e字符都只出现1次,次数最少,构成一颗树;
产生新的节点,个数为a和e次数的和,即为1+1=2.
如下图所示:
这里写图片描述
第三步:
再找出剩下的节点中出现次数最小的两个节点;
找出d字符和上一步的新节点,分别一个是3次,一个是2次;
这两个节点继续壮大这颗树,再产生新的节点,次数为3+2=5次.
如下图所示:
这里写图片描述
第四步:
再从剩下的节点中找出最小的两个,是b和c
构成新的树,父节点是4+4=8
如下图所示:
这里写图片描述
第五步:
将最后两个节点合并成一颗大树;
最上面是树的根节点;
最下面是每个字符对应的子节点;
我们默认为:从根节点自上向下看开始计数,往左拐记为0,往右拐记为1;
那么从根节点到下面每个子节点的路径所对应的计数的组合,就是这个字符所要代替的01组合.
如下图所示:
这里写图片描述
最终不难看出:
a对应110
b对应00
c对应01
d对应10
e对应111
那么原内容:abbbbccccddde
就可以替换为:1100000000001010101101010111
这个就是压缩后的内容,
那么在解压的时候,再将这些10的组合依次替换成对应的字符即可.

docker下nginx配置压缩字体和图片等配置 docker nginx容器设置压缩字体和图片配置 图片,字体等文件压缩配置 docker-compose 配置 立即下载

相关推荐

以太网以及车载以太网概述

千兆网线和百兆网线区别 1、所谓的百兆网线其实就是 五类线 和超五类线 ,而千兆网线主要是指六类线 和超六类线 ,另外还有古老的十兆网线也就是指 四类线 和 三类线 等。 2、在使用上,其实千兆网线和百兆网线是没什么区别的,千兆网线完全兼容百兆网络。 3、百兆网线的线芯是8芯,但上传和下载只用到了其中的4根,而千兆网线需要完全用到8根。 4、另外在线芯的排布上,千兆网线的线芯中间有个十字形的塑料架,用来把四组8芯的线分开,这个百兆网线是没有的, 5、所有的网线在外皮上都有种类标识,CAT5 CAT

$好记性还是要多记录$ 4074

nginx压缩ttf文件 mine.types的作用

最近在运维过程中,前端提到发现在linux上下载某ttl文件(字体文件)太大,传输过程比较慢,于是就想着使用nginx的gzip进行压缩,经过不断尝试,终于发现在nginx的配置目录/etc/nginx/mine.types 文件中少了造成nginx不能识别ttf文件,加上后就能压缩了(ttf在nginx中默认是没有配置的,需要手动去加)下载是nginx.conf开启压缩具体的配置gzip on;#是否开启gzip压缩#设置压缩等级 范围1-9 等级越低压缩比越小。

RayPick的博客 917

vhr 微人事系统安装与部署教程(SpringBoot + Vue 项目实战)

vhr(微人事)是一个开源的人力资源管理系统项目。系统采用前后端分离架构,主要技术栈包括:后端:MyBatis前端:VueElement UIAxios数据库:MySQL系统通常包含以下模块:员工管理部门管理职位管理薪资管理权限管理系统管理整体功能已经接近企业级后台系统。vhr(微人事)是一个非常经典的开源人力资源管理系统项目,基于SpringBoot + Vue 前后端分离架构。系统包含:员工管理部门管理权限管理薪资管理。

m0_69484557的博客 487

Nginx Gzip模块启用和配置指令详解

一、Nginx中的gzip的设置参数 # 开启gzip压缩服务 gzip on; # gzip压缩是要申请临时内存空间的,假设前提是压缩后大小是小于等于压缩前的。 # 例如,如果原始文件大小为10K,那么它超过了8K,所以分配的内存是8 * 2 = 16K;再例如, # 原始文件大小为18K,很明显16K也是不够的,那么按照 8 * 2 * 2 = 32K的大小申请内存。 # 如果没有设置

挖坑埋你 8363

【论文阅读】AU检测|《Deep Adaptive Attention for Joint Facial Action Unit Detection and Face Alignment》

摘要 本文旨在从大量没有人工标注的视频中学习用于面部动作单元检测的区分表示。受面部动作是面部肌肉运动这一事实的启发,论文将这些运动描述为不同帧中两幅面部图像之间的转换,并将其用作学习表示的自我监控信号。但是,在不受控制的情况下,这种转换是由面部动作和头部运动引起的。为了消除头部运动的影响,我们提出了一个双圈自动编码器(TCAE),它可以解开面部动作相关运动和头部运动相关运动。具体而言,TCAE被训练成分别将源面部的面部动作和头部姿态改变为目标面部的面部动作和头部姿态。我们的实验验证了TCAE解耦运动的能力。

Celine的博客 4554

RK3568-Linux-麒麟系统---更新制作麒麟rootfs

RK3568 Linux系统 麒麟国产麒麟镜像

qiuzw2003的博客 5360

nginx压缩ttf文件踩坑 mine.types的作用

今天在开发过程中,发现在linux上下载某ttl文件(字体文件)太大,传输过程比较慢,于是就想着使用nginx的gzip进行压缩,经过不断尝试,终于发现在nginx的配置目录/etc/nginx/mine.types 文件中少了 font/ttf ttf; 造成nginx不能识别ttf文件,加上后就能压缩了(ttf在nginx中默认是没有配置的,需要手动去加) 下载是nginx.conf具体的配置 gzip on; #是否开

weixin_48349307的博客 2694

BUCK降压电路设计实战:从理论到PCB的完整指南

本文详细介绍了BUCK降压电路的设计实战,从基础原理到PCB布局的完整指南。通过关键部件选型、PCB布局黄金法则和调试技巧,帮助工程师高效设计稳定可靠的开关电源。特别针对电感、MOSFET和电容选型提供实用公式和避坑指南,并分享高温环境下的工程经验与测试方法。

weixin_33744141的博客 455

nginx中文字压缩,图片压缩,对客户端的访问控制(5)

为什么要进行压缩? 在企业中,nginx服务器占用的资源要尽可能的少一些,而实际上网页和高清图片占用的资源是非常大的,这样不利于服务器的优化,因此需要进行压缩,可户可根据自己的需要自行下载。 一、网页文字的压缩 为了实验效果明显,在nginx的默认发布目录(/usr/local/nginx/html/index.html)多写点东西。 ...

qq_41977453的博客 348

YOLO11多个点组合创新:GC10-DET缺陷检测 | DCNv4结合SPPF+11Detect创新性结合

DCNv4结合SPPF+11Detect创新性结合,原始mAP50为0.633 提升至0.651

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1290

模拟一个基站和一个移动台之间的信号传播

同样使用时间序列和上述参数计算出反射径信号的信号强度。根据时间序列和上述参数,计算出直射径信号的信号强度。该信号被视为一个简单的正弦波信号,其频率是2Hz。:时间序列,从0.1秒开始,每隔0.0001秒采样一次,直到12秒。:设置坐标轴范围,横轴范围为0到12秒,纵轴范围为-0.5到0.5。:移动台移动的速度。:移动台距离基站的初始距离。:基站到反射墙的距离。假设基站到反射墙的距离为15米。:绘制直射径信号、反射径信号和合成信号的波形图。:添加标签,标注每条曲线对应的含义。表示反射径信号的颜色为绿色,

Fanjufei的博客 292

Nginx 性能优化与动态内容处理

本文详细介绍了压缩功能、反向代理缓存、FastCGI、Memcache 缓存、Memcache前置的配置过程和理论信息。先通过 Gzip 压缩实现传输层优化,再通过代理缓存减少后端请求;接着引入动态内容处理(FastCGI 连接 PHP),最后通过 Memcache 实现 “应用层缓存→Nginx 前置缓存” 的多级缓存架构,形成 “传输优化→缓存加速→动态处理→多级缓存” 的性能优化链路

a_2373179473的博客 1223

YOLOv12改进策略【Neck】| arXiv 2024 MAFPN:多分支辅助特征金字塔网络 | 通过双向辅助融合与异构卷积机制,解决传统PAFPN多尺度特征融合不充分与小目标检测不足问题

本文记录的是利用MAFPN颈部结构改进YOLOv12的目标检测网络模型。通过引入双向辅助融合机制优化特征处理流程,在自底向上路径利用 SAF 模块融合主干浅层特征与颈部输出,并保留浅层空间信息,为小目标检测提供更丰富细节;自顶向下路径通过 AAF 模块建立密集连接,聚合浅层高 / 低分辨率层、同级层及前层特征,均衡各层通道数后实现多向梯度信息交互,增强中 / 大目标特征表达。将其应用到中,解决传统特征金字塔在多尺度信息整合中的不足,提升多尺度目标检测的精度与特征表达的丰富性。Multi-Branch Aux

Limiiiing的博客 1257

nginx gzip压缩html,nginx使用gzip压缩文件

团队文化:进取,分享,快乐,责任!团队愿景:做最好的产品,打造有影响力的团队!一个热爱技术,气氛活跃,开放分享的团队,长期招聘架构师,高级java开发工程师,高级前端开发工程师数名,期待你的加入,简历投递:panjian@jd.com为了提高页面的响应速度,可以从设置 nginx 的 gzip 和缓存这2方面入手,而为ttf,js,css等文件开启 gzip 和缓存能大大减少带宽的消耗.HTTP ...

weixin_39733232的博客 768

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

15.2 Content-Length 实体的大小

Content-Length 首部指示出报文中实体主体的字节大小。这个大小是包含了所有内容编码的,比如,对文本文件进行了 gzip 压缩的话,Content-Length 首部就是压缩后的大小,而不是原始大小。 除非使用了分块编码,否则 Content-Length 首部就是带有实体主体的报文必须使用的。 使用 Content-Length 首部是为了能够检测出服务器崩溃而导致的报文截尾,并对共享持

用不完的好奇心 3573

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

教你如何nginx服务器开启gzip压缩

使用lighthouse检测网页后,发现提示我需要进行资源压缩明明我前端代码已经压缩了啊,查询相关文档后发现说的是服务端gzip压缩查询网站是否用gizp压缩Gzip 是一种压缩算法,在网络传输中使用非常普遍。需要注意的是,Gzip 压缩仅对于文本类型的资源有明显提示,压缩后的体积大约是压缩前的 1/3。但是对于图片,音视频等媒体资源,本身就采用了有损压缩,所以再使用 gzip 并不能得到很大提升,有时候反而会适得其反。

weixin_45748897的博客 1859

nginx压缩功能

通过以上实验,你可以清晰地了解 Nginx 压缩功能的配置和效果,在实际应用中,可以根据网站的具体情况和服务器资源状况,合理调整压缩配置,以达到最佳的性能和用户体验平衡。该模块通过对响应内容进行实时压缩,减少数据传输量,从而提高网页的加载速度,节省带宽资源,并提升用户体验。指定要进行压缩的文件类型,多个类型之间用空格分隔。不接受压缩内容,查看返回的文件大小和内容。字段,表明文件已被压缩传输。用于启用或禁用整个压缩功能。

2301_78537542的博客 1226

转载:nginx中如何设置gzip(总结)

dasfdsaf

黄彪博客 1008

ws协议与http协议的异同_Http协议之ContentLength

前言http协议是互联网中最重要的协议之一,虽然看上去很简单,但是实际中经常遇到问题,我们就已经遇到好几次了。有长连接相关的,有报文解析相关的。对http协议不能一知半解,必须透彻理解才行。所以就写了这个系列分享http协议的问题与经验。问题我们的手机App在做更新时会从服务器上下载的一些资源,一般都是一些小文件,更新的代码差不多是下面这样的:static void update() t...

weixin_29007243的博客 311

Java利用Gzip对字符串进行压缩与解压

在某些业务场景下,可能需要对字符串进行压缩与解压,压缩字符串可以使用 GZIPOutputStream 输出流来实现,而解压可以使用 GZIPInputStream 输入流来实现,下面先给出具体的参考代码,然后再分析其中的实现原理。​。...

JHIII的博客 5408

LZ77文件压缩

本文对于LZ77算法进行了细节性的分析和模拟实现。

weixin_45897952的博客 6757

Nginx 请求压缩详解

nginx 高并发优化 ,压缩请求

weixin_52834606的博客 5276

一二七、 Nginx配置Gzip、缓存、代理解决跨域

##cache## proxy_connect_timeout 5; proxy_read_timeout 60; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_temp_path /home/temp_dir; ...

梅某某 403

nginx静态资源压缩

在Nginx的配置文件中可以通过配置gzip来对静态资源进行压缩,相关的指令可以配置在http块、server块和location块中,Nginx可以通过。 ngx_http_gzip_module模块 ngx_http_gzip_static_module模块 ngx_http_gunzip_module模块 对这些指令进行解析和处理。 Gzip模块配置指令 ...

清风 3972

Nginx Brotli压缩算法

在web应用中,为了节省流量,降低传输数据大小,提高传输效率,常用的压缩方式一般都是gzip,今天我们来介绍另外一种更高效的压缩方式brotli。Brotli 是基于LZ77算法的一个现代变体、霍夫曼编码和二阶上下文建模。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。注意:使用算法的前提是启用了 https,因为 http 请求中里的是没有 br 的。跳转中...

老猫喜欢今日爬山的博客 1395

Nginx-gzip压缩

nginx 可以对js css img 类型的文件做压缩传输,大量的减少访问时的带宽,用户访问的友好度会显著的提升

悟能的师兄的专栏 1686
上一篇: HTTP首部---referrer 知识点
下一篇: zookeeper基础整理
zhangSir134
博客等级 码龄9年 7969粉丝 246原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值