如何优化网站的访问速度
12月20日 终不悔投稿 最近小吴同学发现有诸多的小伙伴们对于如何优化网站的访问速度这个问题都颇为感兴趣的,大家也都想要及时了解到如何优化网站的访问速度相关信息,那么小吴同学今天就来为大家梳理下具体的关于这个问题的一些消息吧。
首先,在HTTP请求之前需要做这些:
获取IP。浏览器地址栏中输入网址并提交之后,首先它会在DNS本地缓存表中查找,如果有则直接告诉IP地址。如果没有则要求网关DNS进行查找,如此下去,当找到对应的IP后,返回给浏览器。
建立TCP连接。当获取到IP之后,就开始与所请求的服务器完成三次握手建立TCP连接。
连接建立后,就向服务器发出http请求。
HTTP请求,首先会得到页面文件,然后解析页面文件中的资源文件,
包括css,js,图片等,再发请求获取这些资源文件。在HTTP1。1请求中,
多个请求是可以重叠进行的,但是页面文件必须要先到才能知道要去请求哪些资源文件。
所以整个过程中有几个阶段,第一阶段是首字节获取时间,
也就是从URL请求到服务器收到HTTP请求后返回响应的内容的时间,
这其实并不只是DNS和建立连接的时间,对于动态页面来说,
要由服务器将动态代码执行完毕返回页面代码才可以,
于是包括运算和数据库操作啊这些都会直接增加首字节获取时间。
而于静态文件来说,首字节获取时间通常是比较快的。
但是如果与服务器之间的网络不畅,比如说服务器在国外,则会造成很长的延时。
在阿里云的云监控中,可以任意设置HTTP监控点,来监控服务器的响应时间,
比如说我设置了放在同一个服务器上的两个网站:
这里可以明显看到对于需要调用数据库的Wordpress来说,
响应时间明显比下面只使用了简单的XML读取的eitdesign要长得多。
而对于eitdesign来讲,基本上响应时间是瞬间,这里就看出服务器物理距离带来的影响了,
因为服务器在杭州,从杭州访问只要2ms,而从青岛访问则需要23ms。
至于数据到服务器再返回的响应时间可以通过ping指令获取。
话说很多人都用过的ping指令,但是貌似很多人只是用来看服务器通不通
先来说说ping的原理:发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
理论上来说,ping发过去的数据大小对方也应该回复同样大小的数据,于是可以轻松的看出与服务器之间通讯的状态。
所以如果ping的响应时间一直很稳定,突然有波动,可能是由于带宽突然被占满导致的,
这时配合对于服务器资源的监控,可以轻松的看出来问题出在哪。
在ping的同时不断刷新页面,可以看到某个瞬间明显时间变长的现象,就是这一瞬间带宽已经被占满了。
第二个阶段是得到页面文件的时间,在页面文件得到之前,是不会请求任何资源文件的,
因为还不知道页面上有哪些资源文件,所以这段时间也非常关键。
第三阶段是获取head中各种资源文件的时间,资源文件是以在HTML页面中出现的顺序来加载的,
所以head中的资源会优先被加载,head里主要是css和js文件,然后页面才会渲染出来,
所以要特别注意head中所需资源的载入时间。毕竟在页面渲染出来之前,用户所看到的都是一片空白。
第四阶段是获取剩下的资源文件的时间,这部分主要是图片动画视频等文件了,
重要性不是那么高了,毕竟页面已经出来了,大部分用户觉得用几秒时间看着它们载入也是可以接受的。
其实还有页面渲染时间,但是因为和载入同步进行,而且通常不会比载入更慢,所以可以忽略。
测试工具
想要直观的获取这些数据,可以直接看页面的时间线,也就是瀑布图,
现在各大浏览器内置的调试工具都可以实现这个功能。以本网站和safari为例,
可以看下图:首次访问(safari中可以通过shift刷新按钮来忽略缓存):
再次访问:
从图中可以清楚的看到,共引用了47个资源文件,一共是2M的数据,首次访问总用时1。07秒,再次访问用时825ms。
先来说说首次访问:第一行蓝色的这个是页面文件,总大小50。89KB,压缩过实际传输尺寸10。58KB,
响应时间342ms,载入时间66。1ms。然后这个文件解析之后,就开始请求各个资源文件。
这里可以看到两条虚线,蓝色的这一条是DOMContent事件触发时间,此处是635ms,
表示当浏览器已经完成解析文档(但其他资源比如图片可以还没下载完成),
而红色的这条是Load事件触发时间,这里是1。07秒,表示所有资源都已经加载完成了。
首次访问时所有资源都要请求,而再次访问时就可以利用本地缓存数据加快资源载入速度了。
所以对不常变化的静态资源设置一个过期时间,告诉浏览器在一定期间内都不需要重新载入这个资源。
可以加快用户再次访问的速度,显著减少第四阶段的时间。
这个时间线不仅可以在本地浏览器中查看,也可以在相关的测试网站上看到,
例如阿里的阿里测,还有GooglePageSpeed和YahooYSlow。
有一个工具把GooglePageSpeed和YahooYSlow结合了一下,叫GTMetrix,也是不错的工具。
同时这些网站也会针对站点提供优化的建议。
还有个工具叫17CE,可以同时从不同地区的测试服务器测试响应时间和PING时间,
可以用于了解不同地区用户的访问速度。
优化方法
好了,现在有了相关的基础知识和工具,就可以有针对性的进行优化了。下面来分别说一说各部分要如何来优化:
第一阶段,服务器响应时间,这部分基本上没啥太好的方法了,如果是动态网站的话,
主要以算法和数据库优化为主,还有使用AJAX异步读取数据之类的,其实是后端的事,
这里就不展开讨论了。不过一个网站如果服务器顺应时间超过2秒,
基本上可以认为这服务器已经挂了,通常应该控制在500ms以内,
或许让人感觉并不明显,如果能控制在250ms以内就更好了。
第二阶段,获取页面文件,首先页面文件通常都不大,而且都是纯文本。
于是优化的方法就是开启Gzip压缩,开启方式,
对于Apache来说,首先要把httpd。conf里的LoadModuledeflatemodulemodulesmoddeflate。so前的去掉,
然后重启Apache,然后在。htaccess中加入:
AddOutputFilterDEFLATEhtmlxmlphpjscsstexthtmltextplain
Gzip压缩对于这种比较松散的纯文本效果还是比较明显的,比如说我的这个首页就从50K压缩到了10K。
还有要使用外部linkCSS文件,不要把样式表直接放入HTML页在,这样CSS文件可以设置缓存。
第三阶段,head中的资源文件,主要是css和js文件,方法有这几个:
使用GZip压缩。
使用minify之后的js和css,原版用于修改,输出min版用于使用,虽然不利于阅读,但是尺寸明显减小。
合并多个css和js文件,减少http请求数量。
把不必要的js文件移到页面后面去加载,对于那些不影响渲染的js文件,移到第四阶段再加载可以减少页面显示时间。
对于不常更新的文件设置缓存时间并使用OSS或CDN
第四阶段,这一段才是真正的大数据量,现在通常用户的带宽都不是问题了,
瓶颈主要出现在服务器上了,可以想想看,如果一个页面完全载入需要2MB的数据,
那么如果服务器出口带宽只有1Mbps的话,则忽略各种延时不计,在只有一个用户访问的情况下,
最快也需要16秒的时间才能传输完成这2MB的数据。这对于用户来说是不能忍的。
于是对于阿里云的ECS来说,如果你是包月的,没有很高带宽的话,就要尽量减少一切从ECS上直接访问的资源。
方法主要是使用OSS存储,CDN加速和GZip压缩。这具体的优化就很细致了,努力将ECS上直接访问的数据量减至最少,
但是Wordpress很麻烦,有些系统自带的和插件里引用的js和CSS文件,不方便合并和改变位置
只能尽量优化。以我这个网站为例,之前在将所有图片都放入CDN之后,
载入首页还是大概要有220KB的数据要从ECS上走,这样只有1Mbps带宽的话,至少需要2秒时间。
后来又移动了主题内的所有图片和bootstrap,jquery至CDN,再加上GZip压缩,
经过优化之后,现在只有80KB的数据,可以保证在1秒以内加载完成。
其它需要注意的地方包括:
在保证图片质量的前提下尽可能的压缩图片尺寸。
如果要展示小图,不要在页面中resize大图,要直接使用小尺寸的图片。
尽量针对静态文件单独使用无cookies的域名
至于访问量巨大的网站,那更是节约每一个字节都很重要,还有更多的优化方法,可以具体参考GooglePageSpeed和
YahooYSlow的页面评测结果,不过这两个服务器都在国外,所以响应时间会长很多,这一数据可以忽略。
最后来说说如何设置缓存时间,对于Apache来说,
首先要把httpd。conf里的LoadModuleexpiresmodulemodulesmodexpires。so前的去掉,然后重启Apache,
然后在。htaccess中加入相应的代码就可以设置不同文件类型的缓存时间了,
如下设置的是图片文件和JS文件1个月,图标文件1年:
ExpiresActiveOnExpiresByTypeimagejpgaccessplus1month
ExpiresByTypeimagejpegaccessplus1month
ExpiresByTypeimagegifaccessplus1month
ExpiresByTypeimagepngaccessplus1month
ExpiresByTypetextxjavascriptaccessplus1month
ExpiresByTypeapplicationxshockwaveflashaccessplus1month
ExpiresByTypeimagexiconaccessplus1year
题外话
其实这篇文章的诞生源于阿里云服务器的小故障,某一天开始响应时间变的非常长,以至于云监控报警,当时上去看了一下一度响应时间达到15秒以上
于是在想是发生什么了就想尽各种办法开始优化自己的网站,虽然这故障很快修复了,但是有机会让我重新研究了一下页面加速的各种知识。让我清醒的意识到1Mbps带宽是多么多么的小
希望大家在这篇文章中能找到自己想要的东西,小小的加速一下自己的网站
投诉 评论 查位手机定位对方记录没更新(免费查手机定位)查位手机定位对方记录没更新(免费查手机定位)现在的社会,手机现已成为了万众随身的一种设备,它可以上网和联络朋友,可以作为人们的掌上电脑。现在的手机大多数都是智能化的……
怎么样查手机号定位(他人手机号怎么定位)怎么样查手机号定位(他人手机号怎么定位)现在的社会,手机现已成为了万众随身的一种设备,它可以上网和联络朋友,可以作为人们的掌上电脑。现在的手机大多数都是智能化的,可……
你凭什么上北大(我凭什么考上北大音频)各位同学,大家好。我是郑老师今天要跟大家分享的主题是我凭什么上北大。原文是来自一名北大状元的自述。之所以想跟大家分享这篇文章,是因为这是一个听起来不真实的真实的故事,一个……
微信运动是指微信聊天记录怎么查(微信聊天记录去哪里查)微信运动是指微信聊天记录怎么查(微信聊天记录去哪里查)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出……
免费查已删掉的微信聊天记录(微信聊天记录删除还原)免费查已删掉的微信聊天记录(微信聊天记录删除还原)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手机……
别人不同意可以定位吗(不经对方同意能定位到对方吗?)别人不同意可以定位吗(不经对方同意能定位到对方吗?)知位定位软件对方知道吗?这个问题是最近很多想要使用知位定位的朋友还不清楚,这是是一个可以直接输入对方手机号就能有位置显……
今日废塑料网上价格(废旧金属交易网)摊牌了,工业线材拉丝材今日价格硬线今日价格型材工字钢今日价格槽钢今日价格角钢今日价格硅钢今日价格带钢今日价格优特钢工业普圆今日价格碳结圆钢今日价格Cr合结钢今日价格齿轮钢今日价……
如何优化网站的访问速度最近小吴同学发现有诸多的小伙伴们对于如何优化网站的访问速度这个问题都颇为感兴趣的,大家也都想要及时了解到如何优化网站的访问速度相关信息,那么小吴同学今天就来为大家梳理下具体的关……
绿化工程生意怎么做(做景观植物生意好吗)绿化苗木种植近几年来市场行情大风大浪,的确让一些人富了,也让很多人负债累累意志消沉。售价火爆的年份,一亩地年净产值320万,致使越来越多非专业人士都看到了种苗赚钱了,跟风成群。……
血压低吃什么(十大升血压食物)血压指的是血管内血液的流动对血管壁产生的侧压力。血压形成的原动力是心脏,它相当于汽车的发动机,第二个关键因素就是血管壁的弹性,如果血管壁弹性很差或者过度舒张,血压也会受到很大影……
免费查开宾馆记录软件app(一年前住宾馆能查到吗)免费查开宾馆记录软件app(一年前住宾馆能查到吗)实践日子中酒店的入住记载怎样查?假定说你有入住宾馆记载,那么就能够直接进入处理网络去查询自己的一个个人信息,……
今日全国谷子价格行情,谷子多少钱一斤Mysteel山西忻州市场米糠最新报价平稳。点击查看。9月左右高,主要是中稻迎来了上市。你可以自由选择价格进行钱搭配后再核算价格,价格会便宜一点。09年6月内蒙古地区,新……
在国外酒店记录能查吗(酒店住房记录查询)在国外酒店记录能查吗(酒店住房记录查询)实践日子中酒店的入住记载怎样查?假定说你有入住宾馆记载,那么就可以直接进入处理网络去查询自己的一个个人信息,所以在日常……
用手机号码查微信聊天记录(怎么查询微信的聊天记录)用手机号码查微信聊天记录(怎么查询微信的聊天记录)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出手机……
微信之前的聊天记录删了怎么查(找回已删除的聊天记录)微信之前的聊天记录删了怎么查(找回已删除的聊天记录)微信现已成为咱们最常用的谈天东西,因为微信的运用率十分高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出手……
怎么用苹果id查男朋友的位置(怎么查对方的手机位置)怎么用苹果id查男朋友的位置(怎么查对方的手机位置)现在的社会,手机现已成为了万众随身的一种设备,它能够上网和联络朋友,能够作为人们的掌上电脑。现在的手机大多数都是……
今日弥渡华润水泥价格华润水泥供应商门户储气罐安装华润水泥,广东及广西地区占其收入约70。询比价公告云南区弥渡水泥机电部现拟定于今年5月28日进行今年弥渡公司二线水泥装车道安装堆积门公开询价项目。云南。公告摘要……
微信聊天记录不小心清空(怎样找回清空的聊天记录)微信聊天记录不小心清空(怎样找回清空的聊天记录)微信聊天记录清空了怎么办?如何恢复丢失的微信聊天记录?最近在网上看到有很多人求助怎么恢复微信删除的记录。许多人误删了重要的……
折耳蓝猫为什么不能养(蓝白英短折耳猫能不能养)圆圆的脑袋,向下折叠的耳朵,再加上水灵灵的大眼睛,让折耳猫看上去就像坠入人间的精灵一样。这么可爱的折耳猫,为什么大家都不太敢养呢?因为这几点,不是人人都能接受的!1、价格……
宁波时令蔬菜今日价格元公斤商品名称商品类别最高价今日平均价白条猪肉禽1917,贝壳类经营户的摊位,市场蔬菜交易结算全面运用电脑结算系统,什么时间该吃什么水果,市场今日场务管理实行全方位电视监控录像……
塑料pe今日行情价格表导语,塑料机械,下游需求冷漠PP行情大打折扣月中国PP粒出口环比超预期增长52今天,塑料制品,提供塑料原料价格,中塑在线是21世纪塑料行业门户网站,提供PE今日价格行情。……
鸡胸腌多久(鸡胸肉最少腌制多久)HI,大家好,这里是石子食为乐,我是石子。天气好热啊!虽说时不时地下下雨,按老人的话来说,这个时候是越下越热。虽然热,但是吃饭还是要吃的。我们除了做凉菜外,最希望的是做一……
教你远程观看别人手机微信录(远程监控对方手机内容)教你远程观看别人手机微信录(远程监控对方手机内容)微信远程监控对方手机,简单实用!微信新功能,远程协助父母使用手机,太有爱了哈啰大家好!我是雷哥教电脑,我们大家都知道在电……
今日回收黄金交易价,黄金回收今日价格根据不同的速度,基本上都是每克多少,不代表本站立,价格也是有所区别的,不含手续费,故根据成色及含量回收价格在22深圳全进金行黄金回收。以上便是今日小编为大家带来的关于今日金价与……