1、web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩(Accept-Encoding 信息);
2、如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
3、如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
4、如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
5、如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
6、如果请求文件是动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。
三、Apache中开启gzip压缩服务
1、修改Apache的http.conf文件,去除mod_deflate.so前面的“#”号注释:
LoadModule deflate_module modules/mod_deflate.so
接着在http.conf最末尾添加gzip压缩配置的代码:
GZIP压缩模块配置
告诉apache对传输到浏览器的内容进行压缩
SetOutputFilter DEFLATE
压缩等级 9
DeflateCompressionLevel 9
设置不对后缀gif,jpg,jpeg,png,exe等文件进行压缩
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|exe|t?gz|zip|bz2|sit|rar|pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
压缩类型 html、xml、php、css、js
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php text/css application/x-javascript
AddOutputFilter DEFLATE js css
里面的文件MIME类型可以根据自己情况添加,至于PDF 、图片、音乐文档之类的这些文件本身都已经高度压缩格式,重复压缩的作用不大,反而可能会因为增加CPU的处理时间及浏览器的渲染问题而降低性能。所以就没必要对其进行Gzip压缩。
2、对指定的文件配置缓存的生存时间,去除mod_headers.so模块前面的“#”号注释:
LoadModule headers_module modules/mod_headers.so
接着在http.conf最末尾添加文件缓存时间配置的代码:
文件缓存时间配置
<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css)$”>
Header set Cache-Control “max-age=2592000”
3、配置完成后,重启Apache服务即可。
四、Apache服务异常停止处理
如果在http.conf末尾添加Gzip压缩配置,且重启Apache服务后,发现服务无法正常启动,就用我这个方法:
1、查看Apache安装目录下conf/extra/下,是不是有一个httpd-deflate.conf文件
2、在http.conf添加对httpd-deflate.conf文件的引用,代码如下:
引用GZIP压缩模块配置文件
#Include conf/extra/httpd-deflate.conf
3、修改httpd-deflate.conf里的配置代码,如下:
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat ‘“%r” %{outstream}n/%{instream}n (%{ratio}n%%)’ deflate
CustomLog logs/deflate.log deflate
压缩类型 html、xml、php、css、js
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php text/css application/x-javascript
Netscape 4.x has some problems…
BrowserMatch ^Mozilla/4 gzip-only-text/html
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!