先来说一下我们使用浏览器访问一个网页 , 到看到这个网页出现, 中间到底经过了些啥?

首先, 在HTTP请求之前需要做这些:

获取ip:  浏览器地址栏中输入网址并提交, 首先它会在DNS本地缓存表中查找, 如果有则直接告诉IP地址, 如果没有则要求网关DNS进行查找, 如此下去, 当找到对应ip后, 返回给浏览器

简历TCP[连接:  当获取IP之后, 就开始与所请求的服务器完成三次握手建立TCP连接.

连接建立后, 就向服务器发出http请求.

HTTP请求,  首先会得到页面文件, 然后解析页面文件中的资源文件, 包括css,js,图片等,  再发请求获取这些资源文件, 在HTTP 1.1请求中, 多个请求是可以重叠进行的, 但是页面文件必须要先到才能知道去请求哪些资源文件.

所以整个过程中有几个阶段,

第一阶段是首字节获取时间, 也就是url请求到服务器接受HTTP请求后返回相应的内容的时间, 这其实并不是DNS和建立连接的时间, 对于动态页面来说, 要由于\服务器将动态代码执行完毕返回页面代码才可以, 于是包括运算和数据库操作这些都会直接增加首字节获取时间, 而静态文件来说,首字节获取时间通常比较快的, 但是如果服务器之间网络不畅通, 比如说服务器在国外, 则会造成很长时间的延迟.

第二个阶段是得到页面文件的时间, 在页面文件得到之前, 是不会请求任何资源文件的, 因为还不知道页面上有哪些资源文件, 所以这段时间也非常关键.

第三阶段是获取head中各种资源文件时间, 资源文件是在HTML页面中出现顺序来加载的, 所以head中的资源会有限加载, head里主要是css和js文件, 然后页面才会渲染出来, 所以要特别注意head所需要资源的载入时间, 毕竟在页面渲染出来之前, 用户所看到的都是一片空白.

第四阶段是 获取剩下资源文件的时间, 这部分主要是图片动态视频等文件了, 重要性不是那么高了, 毕竟页面出来了, 大部分用户觉得用几秒时间看到他们载入也是可以接受的

优化方法

第一阶段, 服务器相应时间, 这部分基本没啥太好的办法了, 如果动态网站的话,主要以算法和数据库优化为主, 还有用ajax异步读取数据之类的, 其实是后端的事.  不过如果一个网站如果服务器顺应时间超过2秒, 基本上可以认为这服务器挂掉了, 通常应该控制在500ms以内, 或许让人感觉并不 明显, 如果能控制在250ms以为就更好了

第二阶段:  获取页面文件, 首先页面文件通常都不大, 而且是纯文本, 越是优化的方法就是开启GZIP压缩, 开启方式,, 对于Apache来说,首先要把httpd.conf里的LoadModule deflate_module modules/mod_deflate.so前的#去掉, 
然后重启Apache,然后在.htaccess中加入: 
 
 
<IfModule mod_deflate.c> 
AddOutputFilter DEFLATE html xml php js css text/html text/plain 
</IfModule>

第三阶段:  head中的资源文件, 主要是css和js文件, 方法有这几个:

使用GZip压缩,

使用minify之后的js和css, 原版用于修改, 输出min版用于使用, 虽然不利于阅读,但是尺寸明显减少,

合并多个css和js文件, 减少http请求数据

把不必要的js文件移动到页面后面去加载, 对于那些不影响渲染的js文件, 移动第四阶段再加载可以减少页面显示时间.

对于不需要更新的文件设置缓存时间并使用css或cdn

第四阶段:  这一段才是真正的大数据量, 现在通常用户带宽都不是问题了, 平静主要出现在服务器上, 可以想象看, 如果一个页面完全载入需要2MB的数据, 那么如果服务器出口带宽只有1Mps的话, 则忽略各种延时不计, 在只有一个用户量访问的情况下, 最快也需要10秒的时间才能传输完成这2MB的数据, 这对于用户来说是不能容忍的.  方法主要是使用OSS存储,CDN加速和GZip压缩。这具体的优化就很细致了,努力将ECS上直接访问的数据量减至最少

还要设置图片文件和js缓存时间1个月, 图标文件的缓存时间为1年

<IfModule mod_expires.c> 
ExpiresActive OnExpiresByType image/jpg "access plus 1 month" 
ExpiresByType image/jpeg "access plus 1 month" 
ExpiresByType image/gif "access plus 1 month" 
ExpiresByType image/png "access plus 1 month" 
ExpiresByType text/x-javascript "access plus 1 month" 
ExpiresByType application/x-shockwave-flash "access plus 1 month" 
ExpiresByType image/x-icon "access plus 1 year" 
</IfModule>

如何优化网站的访问速度相关推荐

  1. 进阶篇:如何优化网站提升访问速度

    网站的稳定是运营的首要条件,这也是网站运行不可或缺的,如果客户发现网站打不开,这时就会影响网站的 效果,从而也会让客户产生一定想法,不利于企业形象.因此网站快速稳定运行,可以给客户一个好印象,这也是开 ...

  2. 如何提高网站的访问速度

    很多朋友都用虚拟主机来做网站,将网页文件存放在虚拟空间上,但是页面内容一多,网站打开的速度就显得特别慢,如果您碰到这种情况,与其寻求更好的空间, 不如通过优化网页代码来取得满意的速度.笔者总结了一些切 ...

  3. 教你八步提高网站的访问速度

    1.CDN(http://www.bootcdn.cn/) CDN全称Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶 ...

  4. 服务器网页访问速度慢,分析网站访问速度慢的原因以及解决网站的访问速度

    网站访问速度慢不仅会影响搜索引擎蜘蛛爬行,导致网站排名下降,而且往往会让网站的目标用户感到疯狂.关于网站开放速度对网站排名的影响,我们可以从这篇文章中了解到,"网站访问速度慢对网站排名有什么 ...

  5. 网站用户访问速度监测分析项目

     刚来新公司不久做运维开发,本为以为要继续做我的开源软件开发,结果领导给分了个以前基本从来没考虑的任务,监测用户访问我们网站的速度,没错,是监测所有的用户访问我们网站的速度. 刚来新公司不久做运维 ...

  6. 提升你的外国服务器网站国内访问速度~

    前言 由于众所周知的原因,国内访问国外的服务器速度较慢.在没有特殊线路(直连.CN2GIA等)的加持下,路由线路左绕右绕,严重影响国内访问速度. 能使用国内服务器当然是最好的,但是高昂的流量& ...

  7. 怎样提高网站的访问速度的诀窍

    网站的稳定是运营的首要条件,这也是网站运行不可或缺的,如果客户发现网站打不开,这时就会影响网站的 效果,从而也会让客户产生一定想法,不利于企业形象.因此网站快速稳定运行,可以给客户一个好印象,这也是开 ...

  8. phphstudy运行不了网站_phpStudy访问速度慢和启动失败的解决办法

    下面给大家介绍phpstudy访问速度慢的解决办法. 1.修改mysql数据库链接地址为ip地址127.0.0.1. 2.使用最新版本,这个坑了我好久时间. 下面一段内容是关于phpstudy启动失败 ...

  9. IIS优化-解决IIS访问速度慢问题

    2019独角兽企业重金招聘Python工程师标准>>> 环境是:Windows server 2003 SP2+IIS+PHP+MYSQL 硬件:双路CPU8核+8G内存+2X147 ...

  10. 可以用到项目的优化网站加载速度方案

    1.合并图标,减少网络请求 合并图标是减少网络请求的常见的优化手段,网页中的小图标特征是体积小.数量多,而浏览器同时发起的并行请求数量又是有限制的,所以这些小图标会严重的影响网页的加载速度,阻碍关键内 ...

最新文章

  1. NSwagStudio for Swagger Api
  2. web touch 事件
  3. 基数排序及其思想 C++代码实现及分析 恋上数据结构笔记
  4. 跨境电商谋定重整新业态-李玉庭:数据驱动中国电商大会
  5. ASP.NET配置错误页面浅析
  6. 6.22软件工程总结
  7. C语言 | 一维数组
  8. 学3D建模,工作后薪资一般是多少
  9. python乱码怎么办_python中输出中文乱码怎么解决
  10. PinPhoto On OS X
  11. ic卡消费管理系统_详述食堂消费系统的功能特点
  12. VS2012下基于Glut OpenGL GL_POLYGON_STIPPLE示例程序:
  13. BZOJ 2431: [HAOI2009]逆序对数列( dp )
  14. linux 删除文件内容
  15. w3school和w3cschool两个网站有什么关系和区别?(转)
  16. KinhDown(度盘PC下载器)
  17. python选择时间窗口_对pandas中时间窗函数rolling的使用详解
  18. 碎碎念No.03 我这个程序员终于去看了心理医生做了心理咨询
  19. Windows Server 2008 R2中Windows Server Backup功能之备份、恢复
  20. Java支付宝订单查询

热门文章

  1. Mac修改hosts文件 配置一些IP地址和域名的映射
  2. java 高淇讲的怎么样_反射机制--高淇Java视频笔记
  3. 从零开始搭建ABP框架(Asp .Net Boilerplate)+Oracle(11 g)
  4. 中级软件测试工程师是什么水平,中级软件测试工程师需要满足的基本评定条件...
  5. Quant量化面试题 数学 逻辑题 过河、生日、烧绳、称重
  6. COMSOL吸附模拟
  7. 软考-中级-网络工程师-知识点个人总结(三)
  8. 关于打印机驱动无法装载的问题
  9. 如何用matlab做参数估计,参数估计的MATLAB实现
  10. 【Typecho插件】Typecho百度主动推送插件