音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

让网站打开更快第三弹--开启压缩篇
日期:2021-09-08 17:19:17   来源:脚本之家

什么是压缩?
         大家还记得我们第一次接触winzip软件吗?非常神奇,一个文件,经过winzip压缩后,大小可以压缩成原来的30%左右。记得当年,很多文件,都是压缩后才可以放到自己的软盘中。
而对于网站,也有这样的压缩技术,可以让你的网页中的文本类文件瘦身,在用户完全不知情的情况下,通过gzip和deflate压缩程序有效减少了网页,让用户更快的打开网站。
压缩有多大用处?
         通过一个小小的测试软件,我对新浪、网易等门户网站进行了访问。
         新浪首页访问情况:
  
网易首页访问情况:
大家可以明显的看到,网易和新浪的首页,经过压缩后,都缩小了70%以上。
相信大家都知道,当一个网页,减小到30%后,对于最终用户来说,打开网站的效率会提升为原来的3
备注:
该工具地址http://www.gidnetwork.com/tools/gzip-test.php  大家也可以测试下自己的网站压缩后的情况。
用户不支持压缩怎么办?
开启压缩后,会不会由于用户无法访问这种压缩文件,导致用户访问文件失败?
不会,因为Trident、Gecko、Webkit三种内核的浏览器,都在发起请求时,告知服务器,他们支持什么压缩格式,如下图:
而服务器都是按照发起请求中用户支持的压缩格式,进行对应反馈。如果用户发起的请求头中,无Accept-Enconding头,就将返回给用户非压缩格式。
如何开启压缩?
请百度娘之,网上太多教程了,不再赘述。
对哪些内容开启压缩呢?
只需要针对文本类文件的域名开启压缩。图片等,已经都是压缩格式了,再使用压缩,不会减少什么文件大小,反而会导致服务器负载变高,以及会由于这种对图片的不规范压缩使用导致各种各样意想不到的问题。
所以,开启压缩之前,最好先完成域名拆分的工作,具体见如何让网站打开更快第二弹。
技巧点:
开启压缩,建议使用apache服务器。
因为IIS服务器在处理压缩时有个小问题,就是第一次被访问的时候,IIS给出的文件时非压缩的,后续的访问,才直接给出压缩文件。
这个小的bug,其实问题并不大,但是现在很多网站都在用一些缓存服务器或者是CDN,就会导致这个问题被放大,会导致压缩启用并不能完全成功。
而apache是第一次就直接给出压缩后的文件。
当然了,如果你用的是IIS,并且无法替换apache,那就自己麻烦一些,写个脚本,将常用的页面,在开启压缩后,访问2次,可以减少很多问题发生。
开启压缩之进阶篇
当下的中国网络状况
中国网络谁当家,当然是电信和联通两朵花,但是现在越来越看到的现象是百花争艳,除了这两朵花之外,越来越多的涌现小ISP。如移动、电信通、长城、方正、歌华有线、光环新网、甚至南方地区还有些香港过来的小运营商。
这些小运营商都有一个特点,就是会cache文件,他们会为了减少网间结算带宽,而尽量想办法缓存文件,让他们的用户本地访问。
其次,对于很多中大型公司来说,他们也会搭建自己的缓存服务器。
另外,还有很多网站,自身都搭建或者在使用第三方的CDN,也都是缓存服务器。
所以,当下的中国网络情况,基本上就是缓存服务器在提供众多的服务。所以,你的开启压缩,如果不主动配合这些各种各样的缓存服务器,那么你out了,你会发现,你的很多努力,都是笑谈,并无实际作用。
如何适合当下的状况?如何才可以保证用户支持压缩时,网络间传递的就是你想给他的的压缩文件?
那么,请紧记以下要点,并逐个落实。
开启压缩时,需要针对压缩和非压缩文件,都返回Vary:Accept-Encoding头。
这个头部是告诉缓存服务器,要根据用户支持的编码方式提供对应的文件。
该项很重要,很多网站,只是对压缩文件开启该头。在缓存服务器中,如果给出的非压缩的文件不包含该头部,也就是告知缓存服务器,当用户请求时,不需要判断用户支持的编码格式,而直接将该文件传递。所以,最后导致用户请求到缓存服务器时,无论用户支持不支持压缩,都是直接返回非压缩的文件。
开启压缩时,需要同时对HTTP1.1和HTTP1.0均开启压缩。
大家都是认为,HTTP1.0协议的用户,肯定是特别老的用户,肯定是不支持压缩的,所以,很多网站,都是针对HTTP1.0协议提供非压缩文件。
但是,实际中,太多太多的缓存服务器,为了追求最大的兼容性,还在使用HTTP1.0协议。所以,当你只是对HTTP1.1协议开启压缩时,等于抛个媚眼给瞎子看。
例如,新浪的缓存服务器,也是HTTP1.0协议的,但是他们就很聪明的针对HTTP1.0也开启了压缩服务,如下图:

作者:王康
文章来源:xmw2.blog.chinaunix.net

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    网站运营微信营销网络赚钱