HTTP版本升级之路学习笔记0

2019-10-21  本文已影响0人  sydneywhatever

本文主旨:历数HTTP不同版本的升级之路。升级的目的:完善功能、加速访问、增加安全。

HTTP协议:HyperText Transfer Protocol,超文本传输协议

一、HTTP版本升级——功能篇

1、HTTP/0.9

仅一个GET命令,只能访问HTML格式网页。

2、HTTP/1.0

升级亮点:除了GET命令,引入了POST和HEAD命令,增加了多种格式。

缺点:无状态,短连接。

每个TCP连接只能发送一个请求。发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接。

临时解决办法:客户端使用非标准的Connection字段,要求服务器不要关闭TCP连接,以便其他请求复用。

3、HTTP/1.1

升级亮点:

支持长连接,对于同一个域名,大多数浏览器允许同时建立6个持久连接。

同一个TCP连接里面,客户端可以同时发送多个请求,能够加快访问速度(详见下文二)。

缺点:

队头堵塞:同一个TCP连接里面,所有的数据通信是按次序进行的。服务器只有处理完一个回应,才会进行下一个回应。要是前面的回应特别慢,后面就会有许多请求排队等着。

只能通过关闭TCP连接来取消数据流。

临时解决办法:减少请求数,同时多开持久连接。

4、HTTP/2

升级亮点:

复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应,这样就避免了"队头堵塞"。

可以取消某一次请求,同时保证TCP连接还打开着,可以被其他请求使用。

允许服务器未经请求,主动向客户端发送资源。

二、HTTP版本升级——性能篇

HTTP基于TCP,在TCP建立连接后,客户端发送HTTP Request,服务器回复HTTP Responses,完成一次会话。

HTTP通信时间 = TCP连接时间 + HTTP交易时间 = 1.5 RTT + 1 RTT = 2.5RTT

1RTT=一个数据来回时间

HTTPS增加了TLS建立连接时间,IP / TCP / TLS / [HTTP]

HTTPS通信时间 = TCP连接时间 + TLS 连接时间 + HTTP交易时间 = 1.5 RTT+ 1.5 RTT + 1 RTT = 4 RTT

1、HTTP/1.1

访问页面通常嵌入其它动态或链接资源,对于这些资源通常需要重新建立一个TCP连接、TLS连接、HTTP交易。所以完整页面加载时间 = 4RTT *2 = 8RTT。

第二次连接还是相同的服务器,TCP和TLS可复用,节约5RTT的时间。

2、HTTP/2

1)使用无连接的UDP;

2)使用QUIC(Quick UDP Internet Connection)协议,集成了TCP可靠传输机制、TLS安全加密、HTTP /2 流量复用技术。

IP / UDP / QUIC

HTTPS通信时间 = UDP连接时间 + QUIC交易时间(TLS 连接时间 + HTTP交易时间)  = 0RTT+ 2.5 RTT = 2.5 RTT

完成QUIC交易的连接的Session ID会缓存在浏览器内存里,如果用户再次打开该页

面,无需建立TLS连接。

所以,第二次通信时间 = HTTP交易时间 = 1 RTT。

3、HTTP/3

QUIC不仅可以运输HTTP,还可以运输其它协议,把QUIC与HTTP分离:IP / UDP / QUIC / HTTP。

新的QUIC集成了TLS 1.3版本,建立TLS连接不再需要1.5 RTT,而只需要1 RTT。

HTTPS通信时间 = UDP连接时间 + QUIC交易时间  = 0RTT+ 2 RTT = 2 RTT

三、HTTP版本升级——安全篇

主要针对HTTP/2以上,QUIC的升级。

TCP 协议头部没有经过任何加密和认证,所以在传输过程中很容易被中间网络设备篡改,注入和窃听。比如修改序列号、滑动窗口。这些行为有可能是出于性能优化,也有可能是主动攻击。

QUIC 除了个别报文比如 PUBLIC_RESET 和 CHLO,所有报文头部都是经过认证的,报文 Body 都是经过加密的。这样只要对 QUIC 报文任何修改,接收端都能够及时发现,有效地降低了安全风险。

四、问题

1,抛弃了TCP,QUIC如何保障传输可靠性?怎么集成的TCP可靠传输机制?

QUIC基于UDP的传输层协议,集成了TCP可靠传输机制、TLS安全加密、

HTTP /2 流量复用技术。

2,TCP头部为什么不加密?

3、QUIC为什么个别报文不加密?


学习资料来源:

1、公众号车小胖谈网络

2、阮一峰的博客

3、罗成关于QUIC的解读

上一篇下一篇

猜你喜欢

热点阅读