标签:TLS 协议 HTTP 请求 TCP 特性 Http 连接
网络记录:
名称 | 特点 |
Http/1.0 |
- 无状态:协议对于事务处理没有记忆功能
- 明文传输:不安全
- 短连接:每发起一个请求,都要新建一次 TCP 连接,增加了通信开销
- 「请求 - 应答」的通信模式:同一个连接中,HTTP 完成一个事务(请求与响应),才能处理下一个事务。请求是串行的,每一个新请求的发出都要等待上一个请求的成功响应。——请求的队头堵塞
|
Http/1.1 |
- 长连接:持久连接
- 管道(pipeline)网络传输:在同一个 TCP 连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就以发第二个请求出去,可以减少整体的响应时间,解决请求的队头堵塞问题。
- 基于请求 - 响应模型:同一个连接中,HTTP 完成一个事务(请求与响应),才能处理下一个事务。下一个请求的响应必须要等上一个请求的响应完成。————响应的队头堵塞
|
Http/2 |
- 头部压缩: HPACK 算法建立维护头信息索引表(静态表+动态表+Huffman 编码)——解决无状态Http协议头部巨大且重复的问题
- 二进制格式:从文本格式的各个字段值转换到二进制的数据帧(headers frame、data frame)、控制帧——提高了 HTTP 传输效率
- 并发传输:多个Stream复用一条TCP连接。不同 Stream 的帧(携带 Stream ID 信息)是可以乱序发送的,同一 Stream 内部的帧必须是严格有序的。——解决响应的队头堵塞问题
- 服务器主动推送资源:先发送PUSH_PROMISE 帧,告诉客户端接下来在哪个 Stream 发送资源,然后用偶数号 Stream 发送资源给客户端。
|
Http/3 |
- 无队头堵塞:把TCP换成UDP,实现QUIC协议,QUIC 连接上的多个 Stream 之间并没有依赖,都是独立的,某个流发生丢包了,只会影响该流,其他流不受影响,只要其他流的数据报文只要被完整接收,HTTP/3 就可以读取到数据。(之前HTTP/2 是基于 TCP 协议来传输数据的,TCP 是字节流协议,TCP 层必须保证收到的字节数据是完整且连续的,这样内核才会将缓冲区里的数据返回给 HTTP 应用,那么当「前1个字节数据」没有到达时,后收到的字节数据只能存放在内核缓冲区里,只有等到这1个字节数据到达时,HTTP/2 应用层才能从内核中拿到数据,这就是 HTTP/2 队头阻塞问题。一旦丢包,就会触发 TCP 的重传机制,这样在一个 TCP 连接中的所有的 HTTP 请求都必须等待这个丢了的包被重传回来。HTTP/2 只要某个流中的数据包丢失了,其他流也会因此受影响)——解决丢包导致的TCP层队头堵塞问题
- 更快的连接建立:Http/1和Http/2的TCP和TLS是分层的需要分批次握手,TCP 三次握手和 TLS 四次握手,共有 3-RTT 的时延。而Http/3中QUIC内部包含TLS,建立连接和密钥协商可以在1个RTT内同时实现。——解决TCP 与 TLS 的握手时延迟。
- 连接迁移: Http/3之前,一个 TCP 连接是由四元组(源 IP 地址,源端口,目标 IP 地址,目标端口)确定的,这意味着如果 IP 地址或者端口变动了,就会导致需要 TCP 与 TLS 重新握手,这不利于移动设备切换网络的场景。QUIC 协议没有用四元组的方式来“绑定“连接,而是通过连接 ID 来标记通信的两个端点,客户端和服务器可以各自选择一组 ID 来标记自己,因此即使移动设备的网络变化后,导致IP 地址变化了,只要仍保有上下文信息(比如连接 ID、TLS 密钥等),就可以“无缝”地复用原连接,消除重连的成本。——解决连接迁移需要重新连接的问题
|
Https |
- 信息加密:对称/非对称混合加密——解决窃听风险
- 校验机制:摘要算法+数字签名——解决篡改风险
- 数字证书:CA——解决冒充风险
|
补充:HTTP 与 HTTPS 有哪些区别?
- HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
- HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
- 两者的默认端口不一样,HTTP 默认端口号是 80,HTTPS 默认端口号是 443。
- HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。
参考文档:3.1 HTTP 常见面试题 | 小林coding (xiaolincoding.com)
标签:TLS,
协议,
HTTP,
请求,
TCP,
特性,
Http,
连接
From: https://blog.csdn.net/weixin_45747274/article/details/141821710