2、HTTP1下的优化方法
谈到优化,那么首先看一下影响HTTP性能的指标主要有如下:
1、延迟(我们常说的RTT时间端点之间的往返),
2、带宽,
3、DNS查询,
4、建立连接时间(TCP三次握手),
5、TLS协商时间(HTTPS连接请求下),
6、首字节时间(TTFB,从请求到接收到响应第一字节所耗费的时间),
7、内容下载时间(TTLB),
8、文档加载完成时间,
9、页面复杂度
10、更多的域名,css一个,图片一个,js一个等等。
11、更多的TCP socket ,HTTP/1.1下浏览器客户端会对一个域名开启最多6个socket连接。
2.1、队头阻塞
在HTTP/1.1下,如果使用一个连接去请求一个域名下有很多资源,则必须经过发起请求-等等响应-再发起请求这样的过程。在请求应答的过服务器托管网程中,如果出现任何问题包括服务端响应、网络等问题,那么剩下的所有处理都会被阻塞在上次请求应答之后,这就是 “队头阻塞” 问题。即使浏览器客户端会对单个域名开启最多6个socket连接(这个也要跟具体的浏览器来区分比如Firefox是6个,Chrome则是24个)来分发请求,但是每个连接下仍然会受到 “队头阻塞” 的影响。
2.2、拥塞窗口
我们已知HTTP协议之下TCP的支撑,那么TCP成功的关键不是因为它高效而是最可靠的协议之一,这中间有个 “拥塞窗口” 的概念:在接收方确认数据包之前,发送方可以发出的TCP包的数量。比如 拥塞窗口 被指定为1 那么发送方发出1个数据包之后只有接收方确认了这个包,才能发送下一个。那么网络应该怎么才能知道 这个窗口的大小被指定多少合适呢,TCP还有一个概念叫 “慢启动”,形象化的比喻就好比在一间黑暗的屋子,当我们碰到桌子或者凳子的时候就会调整换个方向,慢启动也是这样的原理来调整拥塞窗口的大下。在这样的机制下,比如要发送请求一个大小为2M的HTML页面,在数据包设置为最大值1460字节,拥塞窗口为4,也就是一次发送5840字节的情况下,就需要9次往返才能传输整个页面。可以说HTTP/1.1是低效的利用了TCP。
2.3、臃肿的消息首部
HTTP消息首部被用来描述资源信息,或者是客户端和服务器的行为,自定服务器托管网义专有的首部可以加上 “X-” 前缀。另外cookie也属于消息首部的范畴。在HTTP/1.1中虽然提供gzip压缩机制,但是对于消息首部却无法压缩,虽然这些内容比正常请求的内容资源小的多,但也是不能被忽略的,如果计算上cookie里面的内容,几千个字节是很正常的。尤其是在低带宽或者高拥堵的链路下,就会发生类似 “体育馆效应” 的问题,成千上万人同一时间出现在同一地点,迅速耗尽无线蜂窝网络带宽。这个时候如果能压缩请求首部将其变得更小,那么就能缓解带宽压力,降低系统的总负载。
基于以上我们已知的影响HTTP性能的指标以及我们列出的HTTP/1.1协议下的特点,我们平时都是怎么优化这些网络请求响应的呢。主要有以下几种方法。
1、DNS查询优化
2、优化TCP连接
3、避免重定向
4、客户端缓存
5、压缩和代码极简化
6、避免阻塞 CSS/JS
7、图片优化
在HTTP/1.1这么长的时间里,以上列举出的优化方法大家都已经耳熟能详了。这里不再过多叙述,如果有不了解的可以查阅相关资料,因为它不是这篇文字的重点。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
文章目录 1、 Linux中查看进程运行状态的指令、查看内存使用情况的指令、tar解压文件的参数。 2、文件权限怎么修改? 3、说说常用的Linux命令? 4、说说如何以root权限运行某个程序? 5、 说说软链接和硬链接的区别? 6、说说静态库和动态库怎么制…