-
HTTP/3
1.1 简介
互联网工程任务组正式将基于 QUIC 协议的 HTTP (HTTP over QUIC)重命名为 HTTP/3。
QUIC(Quick UDP Internet Connections),基于UDP的传输协议,HTTP/2是基于TCP的传输协议。1.2 QUIC 简介
QUIC整合了TCP、TLS、HTTP2的优点,加以优化。
新功能:
1.实现了类似TCP的流量控制,传输可靠性功能。
【虽然UDP不提供可靠性的传输,但QUIC在UDP的基础之上增加了一层来保证数据可靠性传输。它提供了数据包重传、拥塞控制以及其他一些TCP中存在的特性。】
2.实现快速握手功能。
【HTTP2链接需要3RTT(链接往返延时),因为基于TCP的三次握手。由于QUIC是基于UDP的,所以QUIC可以实现使用0-RTT或者1-RTT来建立连接,这意味着QUIC可以用最快的速度来发送和接收数据,这样可以大大提升首次打开页面的速度。0RTT 建连可以说是 QUIC 相比 HTTP2 最大的性能优势。】
3.集成了TLS(安全传输层协议)加密功能
4.多路复用,彻底解决TCP中队头阻塞的问题
【和TCP不同,QUIC实现了在同一物理连接上可以有多个独立的逻辑数据流(如下图)。实现了数据流的单独传输,就解决了TCP中队头阻塞的问题。】
TCP对头阻塞示意图
5.连接迁移
【TCP 连接基于四元组(源 IP、源端口、目的 IP、目的端口),切换网络时至少会有一个因素发生变化,导致连接发生变化。当连接发生变化时,如果还使用原来的 TCP 连接,则会导致连接失败,就得等原来的连接超时后重新建立连接,所以我们有时候发现切换到一个新网络时,即使新网络状况良好,但内容还是需要加载很久。如果实现得好,当检测到网络变化时立刻建立新的 TCP 连接,即使这样,建立新的连接还是需要几百毫秒的时间。QUIC 的连接不受四元组的影响,当这四个元素发生变化时,原连接依然维持。那这是怎么做到的呢?道理很简单,QUIC 连接不以四元组作为标识,而是使用一个 64 位的随机数,这个随机数被称为 Connection ID,即使 IP 或者端口发生变化,只要 Connection ID 没有变化,那么连接依然可以维持。】
1.3 总结
1.HTTP/1.1有两个主要的缺点:安全不足和性能不高。
2.HTTP/2完全兼容HTTP/1,是“更安全的HTTP、更快的HTTPS",头部压缩、多路复用等技术可以充分利用带宽,降低延迟,从而大幅度提高上网体验;
3.QUIC 基于 UDP 实现,是 HTTP/3 中的底层支撑协议,该协议基于 UDP,又取了 TCP 中的精华,实现了即快又可靠的协议。 -
HTTPS原理
1.HTTPS实现原理
HTTPS的整体过程分为证书校验个和数据传输阶段。
证书校验阶段:【浏览器发起HTTP请求】-【浏览器返回HTTPS证书】-【客户端验证证书是否合法,不合法则发出警告提示】
数据传输阶段:【证书校验为合法之后本地生成随机数】-【公钥加密随机数发送至服务器端】-【服务器通过私钥对随机数解密】-【通过解密的随机数,对传输内容进行加密,传送至客户端,客户端通过本地存储的随机数解密传输的内容】
2.为什么数据传输是用对称加密
首先,非对称加密的加解密效率是非常低的,而 http 的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的;
另外,在 HTTPS 的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以 HTTPS 中内容传输加密采取的是对称加密,而不是非对称加密。
3.为什么需要 CA 认证机构颁发证书
首先我们假设不存在认证机构,任何人都可以制作证书,这带来的安全风险便是经典的“中间人攻击”问题。HTTP 协议被认为不安全是因为传输过程容易被监听者勾线监听、伪造服务器,而 HTTPS 协议主要解决的便是网络传输的安全性问题。首先我们假设不存在认证机构,任何人都可以制作证书,这带来的安全风险便是经典的“中间人攻击”问题。
《干货系列》_相关基础_HTTP
最新推荐文章于 2024-10-16 11:23:07 发布