http基础之http发展史

对比http1.0

短连接,有有限的缓存机制,后期集成了长连接,也有连接并发数限制

http1.1:在连接上(使用了tcp长连接,存在tcp连接池子,后面该功能http1.0也集成支持了),connection:keep-alive/close,可减少创建来连接的时间

在多路复用上(没实现流多路复用,但是支持管道),存在极限性,很多浏览器默认禁用该功能。通过增加tcp连接数,以减轻head-of-line的问题,但是出与减轻

服务器负担和因为客户端的软硬件资源有限,浏览器限制了站点(域名)的并发连接数(google:6)

在缓存上(增加了协商缓存,优化鲜活度缓存机制)Etag, last-modify,cache-contraol 等

http状态码(增加了http状态码以达到更广阔的功能呢个支持)比如100

http2.0:为了解决什么问题设计,还有什么问题

在连接上:也是长连接(一般一个站点只创建一个)

多路复用:通过二进制分帧(frames),给请求的资源一个标识来实现多路复用,解决了http层的Head-Of-Line 问题,但是tcp层的没有解决

其他:支持head压缩/缓存(缓存后可以不携带)

支持Host域

服务器推送

支持请求优先级

缺点: 网络存在>2%丢包时,大大影响性能(一个TCP包会存在多个资源的,丢了一个包影响多个资源),阻塞等待包的过程影响其他资源的请求,tcp的队头阻塞问没有解决

开启多个tcp连接

服务端压力变大,每个tcp最大可支持256个流,意味着并发度最大可达到256

http3.0:

QUIC,快速UDP传输协议,并解决了安全和重传的问题

在连接上:支持多路复用,并且解决了传输层对头阻塞的问题,连接建连非常快

http报文:

http基础之http发展史_第1张图片

http

head-of-line 问题:

https://zhuanlan.zhihu.com/p/330300133

 

你可能感兴趣的:(网络,http,服务器)