1.HTTP慢的原因 【HTTP慢的原因和解决方式】主要有2个,带宽和延迟。
- 带宽,网络基础建设完善后,带宽基本不是太大的问题
- 延迟。HTTP/1.0主要的问题在于连接无法复用和head of line blocking.
1)连接无法复用,导致每次请求经历3次握手和慢启动。3次握手在高延迟的场景下影响较为明显,慢启动则对文件类大请求影响较大
2)head of line blocking,导致带宽无法被充分利用,以及后续的健康请求被阻塞。
例,有5个请求需要同时发出。HTTP/1.0时,只有在第一个请求的response回来之后后续的请求才会逐个发出。如果请求1的request没有及时抵达服务器或response没有及时返回,后续的请求就被耽搁了。
- 方案1.基于tcp的长连接
- 方案2.http long-polling
存在问题:
1)增加了服务器的压力
2)网络环境复杂场景下,需要考虑怎么重建健康的连接通道
3)polling的方式稳定性不好
4)polling的response可能被中间代理cache住
……
- 方案3.http streaming
存在问题:
1)有些代理服务器会等待服务器的response结束之后才将结果推送给请求客户端。streaming不会结束response
2)业务数据无法按照请求分割
……
- 方案4.web socket
2.解决head of line blocking 它的原因是队列的第一个数据包(队头)受阻而导致整列数据包受阻
- 方案1.http pipelining
作者:Mcyboy007
链接:https://www.jianshu.com/p/ae4f288136dd
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
推荐阅读
- 架构|架构师之路(二)程序员眼里的架构师
- 程序员|DevEcoStudio的及其传感器的使用,闭关在家37天“吃透”这份345页PDF
- java|阿里工作8年,肝到P8就剩这份学习笔记了,已助朋友拿到10个Offer