起源

在一般的web服务器中,都会开启压缩功能,也就是deflate或者是gzip的压缩。

开启压缩功能主要的目的是为了减少传输的带宽,从而当服务器响应给客户端的时候,会大大减少传输的数据,代价就是在服务器段需要消耗cpu时钟周期,因为压缩是在服务器端进行的,并且压缩还是比较损耗cpu的。

在进行压缩的时候,一般压缩的都是静态文件,例如图片,js,css文件。

例如下面几个淘宝首页的js的压缩情况(第一列是压缩前的数据,第二列是压缩后的数据),压缩的标准是在1KB以下的js文件不会进行压缩,大于等于1KB的js文件就会进行压缩(小文件可能越压缩越大,还耗费服务端的cpu):

css的压缩情况如下所示(压缩比大约为70%,节省了70%的流量):

在淘宝首页中,css image和image均没有进行压缩:

首部信息

在客户端请求的时候,就会发送客户端是否能够接受压缩的格式,也就是accept-encoding表示能够接受的压缩格式,在chorme浏览器中,一般能接受的压缩格式为gzip和deflate格式:

在服务端响应的时候,会发送给客户端,这是否是压缩的文件,头部信息主要为content-encoding,这里的压缩方式为gzip压缩,而且会有一个变化的首部vary,在其中为accept-encoding,表示接受的编码格式,如下所示:

开启httpd的压缩功能

在使用httpd的时候,必须有模块mod_deflate才能进行压缩,当然也有其他的模块,检查模块的命令如下所示(如果不存在,那么需要重新编译,然后加上参数--enable-deflate即可):

[root@mogilenode1 bin]# ./httpd -M|grep deflate(-M表示列出所有的静态模块和共享模块,如果存在,那么就会显示delate模块)

httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.249.236 for ServerName

deflate_module (static)

Syntax OK

在没有启用压缩的时候,查看页面情况如下所示:

浏览器在默认情况下请求报文会发送是否支持压缩,在这里就是支持的,并且列出了支持的压缩格式,在响应报文中没有进行压缩。

配置httpd,在其中加入如下的配置:

<IfModule mod_deflate.c>

SetOutputFilter DEFLATE

</IfModule>

再次查看响应如下所示(你会发现越压缩越大,所以在进行压缩的时候,必须大于一定大小才要进行压缩,否则不仅浪费带宽,还浪费cpu的性能):

在其中也可以针对特定类型的进行压缩,针对特定的类型不压缩,如下配置(指定对html压缩):

<IfModule mod_deflate.c>

SetOutputFilter DEFLATE

AddOutputFilterByType DEFLATE text/html

</IfModule>

在第二次请求的时候,如果启用了缓存,那么就不会显示content-encoding和内容长度了,如下:

总结:

    对于静态资源服务器来说,压缩是必须的,减少带宽节约成本。

起源

在一般的web服务器中,都会开启压缩功能,也就是deflate或者是gzip的压缩。

开启压缩功能主要的目的是为了减少传输的带宽,从而当服务器响应给客户端的时候,会大大减少传输的数据,代价就是在服务器段需要消耗cpu时钟周期,因为压缩是在服务器端进行的,并且压缩还是比较损耗cpu的。

在进行压缩的时候,一般压缩的都是静态文件,例如图片,js,css文件。

例如下面几个淘宝首页的js的压缩情况(第一列是压缩前的数据,第二列是压缩后的数据),压缩的标准是在1KB以下的js文件不会进行压缩,大于等于1KB的js文件就会进行压缩(小文件可能越压缩越大,还耗费服务端的cpu):

css的压缩情况如下所示(压缩比大约为70%,节省了70%的流量):

在淘宝首页中,css image和image均没有进行压缩:

首部信息

在客户端请求的时候,就会发送客户端是否能够接受压缩的格式,也就是accept-encoding表示能够接受的压缩格式,在chorme浏览器中,一般能接受的压缩格式为gzip和deflate格式:

在服务端响应的时候,会发送给客户端,这是否是压缩的文件,头部信息主要为content-encoding,这里的压缩方式为gzip压缩,而且会有一个变化的首部vary,在其中为accept-encoding,表示接受的编码格式,如下所示:

开启httpd的压缩功能

在使用httpd的时候,必须有模块mod_deflate才能进行压缩,当然也有其他的模块,检查模块的命令如下所示(如果不存在,那么需要重新编译,然后加上参数--enable-deflate即可):

[root@mogilenode1 bin]# ./httpd -M|grep deflate(-M表示列出所有的静态模块和共享模块,如果存在,那么就会显示delate模块)

httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.249.236 for ServerName

deflate_module (static)

Syntax OK

在没有启用压缩的时候,查看页面情况如下所示:

浏览器在默认情况下请求报文会发送是否支持压缩,在这里就是支持的,并且列出了支持的压缩格式,在响应报文中没有进行压缩。

配置httpd,在其中加入如下的配置:

<IfModule mod_deflate.c>

SetOutputFilter DEFLATE

</IfModule>

再次查看响应如下所示(你会发现越压缩越大,所以在进行压缩的时候,必须大于一定大小才要进行压缩,否则不仅浪费带宽,还浪费cpu的性能):

在其中也可以针对特定类型的进行压缩,针对特定的类型不压缩,如下配置(指定对html压缩):

<IfModule mod_deflate.c>

SetOutputFilter DEFLATE

AddOutputFilterByType DEFLATE text/html

</IfModule>

在第二次请求的时候,如果启用了缓存,那么就不会显示content-encoding和内容长度了,如下:

总结:

    对于静态资源服务器来说,压缩是必须的,减少带宽节约成本。

起源

在一般的web服务器中,都会开启压缩功能,也就是deflate或者是gzip的压缩。

开启压缩功能主要的目的是为了减少传输的带宽,从而当服务器响应给客户端的时候,会大大减少传输的数据,代价就是在服务器段需要消耗cpu时钟周期,因为压缩是在服务器端进行的,并且压缩还是比较损耗cpu的。

在进行压缩的时候,一般压缩的都是静态文件,例如图片,js,css文件。

例如下面几个淘宝首页的js的压缩情况(第一列是压缩前的数据,第二列是压缩后的数据),压缩的标准是在1KB以下的js文件不会进行压缩,大于等于1KB的js文件就会进行压缩(小文件可能越压缩越大,还耗费服务端的cpu):

css的压缩情况如下所示(压缩比大约为70%,节省了70%的流量):

在淘宝首页中,css image和image均没有进行压缩:

首部信息

在客户端请求的时候,就会发送客户端是否能够接受压缩的格式,也就是accept-encoding表示能够接受的压缩格式,在chorme浏览器中,一般能接受的压缩格式为gzip和deflate格式:

在服务端响应的时候,会发送给客户端,这是否是压缩的文件,头部信息主要为content-encoding,这里的压缩方式为gzip压缩,而且会有一个变化的首部vary,在其中为accept-encoding,表示接受的编码格式,如下所示:

开启httpd的压缩功能

在使用httpd的时候,必须有模块mod_deflate才能进行压缩,当然也有其他的模块,检查模块的命令如下所示(如果不存在,那么需要重新编译,然后加上参数--enable-deflate即可):

[root@mogilenode1 bin]# ./httpd -M|grep deflate(-M表示列出所有的静态模块和共享模块,如果存在,那么就会显示delate模块)

httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.249.236 for ServerName

deflate_module (static)

Syntax OK

在没有启用压缩的时候,查看页面情况如下所示:

浏览器在默认情况下请求报文会发送是否支持压缩,在这里就是支持的,并且列出了支持的压缩格式,在响应报文中没有进行压缩。

配置httpd,在其中加入如下的配置:

<IfModule mod_deflate.c>

SetOutputFilter DEFLATE

</IfModule>

再次查看响应如下所示(你会发现越压缩越大,所以在进行压缩的时候,必须大于一定大小才要进行压缩,否则不仅浪费带宽,还浪费cpu的性能):

在其中也可以针对特定类型的进行压缩,针对特定的类型不压缩,如下配置(指定对html压缩):

<IfModule mod_deflate.c>

SetOutputFilter DEFLATE

AddOutputFilterByType DEFLATE text/html

</IfModule>

在第二次请求的时候,如果启用了缓存,那么就不会显示content-encoding和内容长度了,如下:

总结:

    对于静态资源服务器来说,压缩是必须的,减少带宽节约成本。

公众号:运维Linux和python

Apache开启压缩功能的更多相关文章

  1. apache 开启压缩功能

    apache如何开启压缩功能. 1,首先先确认是安装deflatte模块.如果未安装,可以重新编译apache添加参数--enable-deflate=shared ,或者扩展安装deflate模块, ...

  2. mac 使用apache开启https功能,实现ios局域网内测(一)

    笔者尝试了网上各种办法最后还是找到了方法解决了一系列局域网内测的问题,随手做个笔记记录下,亲测可行. 一.先生成证书 1.进入apache web 的根目录处理证书命令 cd /Library/Web ...

  3. hive优化之开启压缩功能

    1.开启hive作业mapreduce任务中间压缩功能: 对于数据进行压缩可以减少job中map和reduce task间的数据传输量.对于中间数据压缩,选择一个低cpu开销编/解码器要不选择一个压缩 ...

  4. hive优化,开启压缩功能

    1.开启hive作业mapreduce任务中间压缩功能: 对于数据进行压缩可以减少job中map和reduce task间的数据传输量.对于中间数据压缩,选择一个低cpu开销编/解码器要不选择一个压缩 ...

  5. Apache 开启压缩传输

    在 /etc/httpd/conf/httpd.conf 中添加如下配置: # Enable gzip - by Jerryhuang # <IfModule mod_deflate.c> ...

  6. CentOS下Apache开启Rewrite功能

    1.centos的配置文件放在: /etc/httpd/conf/httpd.conf 打开文件找到: LoadModule rewrite_module modules/mod_rewrite.so ...

  7. mac 使用apache开启https功能,实现ios局域网内测(二)

    二.创建app.plist 1. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist ...

  8. windows下apache服务器开启压缩和网页缓存

    找到配置文件:http.conf apache开启压缩 一.开启配置,去除下面代码前面的#号LoadModule deflate_module modules/mod_deflate.soLoadMo ...

  9. http gzip压缩功能记录

    版权声明:本文为博主原创文章,转载请附上原文出处链接. 本文链接:https://www.cnblogs.com/shaoshuai95928/articles/Tomcat.html 最近在spri ...

随机推荐

  1. [NOIP 2011]聪明的质监员

    聪明的质监员 题目 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从 1 到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是: 1. 给定 m个区间[ ...

  2. OpenCV1.0在VC ++6.0下的配置

    1.本人使用win7操作系统,首先要预装VC++6.0,安装方法不再赘述. 2.在OpenCV官方网站下载OpenCV的安装文件"OpenCV_1.0.EXE"(参考链接:http ...

  3. CLI子命令扩展-插件机制实现

    开发CLI工具过程中,为了便于扩展,将CLI的实现分为基础功能和扩展功能.基础功能包括init.build.lint.publish等伴随工程从初始化到最终发布到生产环境,也即为CLI 的core.扩 ...

  4. Mysql元数据生成Hive建表语句注释脚本

    在将数据从Mysql 等其他关系型数据库 抽取到Hive 表中时,需要同步mysql表中的注释,以下脚本可以生成hive表字段注释修改语句. 注:其他关系型数据库如:oracle 可以通过相同的思路, ...

  5. 安徽省2016“京胜杯”程序设计大赛_A_砝码称重

    砝码称重 Time Limit: 1000 MS Memory Limit: 65536 KB Total Submissions: 61 Accepted: 37 Description 小明非常喜 ...

  6. 推荐两款Windows管理工具

    1.babun(cgywin) 一款包含cgywin的类似linux shell的软件,熟练linux脚本的小伙伴们,一定会在她身上找到快感. 2.pslist 微软官方的一款很强大的bat脚本,很实 ...

  7. js单页hash路由原理与应用实战

    什么是路由? 通俗点说,就是不同的URL显示不同的内容 什么是单页应用? 单页,英文缩写为SPA( Single Page Application),就是把各种功能坐在一个页面内. 那所谓的单页路由应 ...

  8. .NET Exceptionless 日志收集框架本地环境搭建

    一.简介 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF,Console,MVC 等 ...

  9. ASP.NET Core身份验证服务框架IdentityServer4-整体介绍

    一.整体情况 现代应用程序看起来更像这个: 最常见的相互作用: 浏览器与Web应用程序的通信 Browser -> Web App Web应用程序与Web API通信 基于浏览器的应用程序与We ...

  10. Mac 如何优雅的使用Microsoft office

    近期要使用文档编辑,但是发现mac下的pages实在不好用,或者说是不习惯,想安装个office  发现官方的office 都基本上要收费,网上的多数都要激活.实在没办法(没钱),看看WPS ,结果w ...