http相关细节

1 HTTPS建立连接过程:先建立TCP连接,再建立SSL连接

HTTP 连接建⽴相对简单, TCP 三次握⼿之后便可进⾏ HTTP 的报⽂传输。⽽ HTTPS 在 TCP 三次握⼿之后,还需进⾏ SSL/TLS 的握⼿过程,才可进⼊加密报⽂传输。

2 HTTP3 基于UDP

3 HTTP 由于是明⽂传输,所以安全上存在以下三个⻛险:
窃听⻛险,⽐如通信链路上可以获取通信内容,⽤户号容易没。

篡改⻛险,⽐如强制植⼊垃圾⼴告,视觉污染,⽤户眼容易瞎。

冒充⻛险,⽐如冒充淘宝⽹站,⽤户钱容易没。

HTTPS 是如何解决上⾯的三个⻛险的?

混合加密的⽅式实现信息的机密性,解决了窃听的⻛险。

摘要算法的⽅式来实现完整性,它能够为数据⽣成独⼀⽆⼆的「指纹」,指纹⽤于校验数据的完整性,解决了篡改的⻛险。

将服务器公钥放⼊到数字证书中,解决了冒充的⻛险。

4 HTTP/1.1 相⽐ HTTP/1.0 性能上的改进:

使⽤ TCP ⻓连接的⽅式改善了 HTTP/1.0 短连接造成的性能开销。

⽀持管道(pipeline)⽹络传输,只要第⼀个请求发出去了,不必等其回来,就可以发第⼆个请求出去,可以减少整体的响应时间。

5 HTTP/2 相⽐ HTTP/1.1 性能上的改进:

(1)头部压缩
HTTP/2 会压缩头(Header)如果你同时发出多个请求,他们的头是⼀样的或是相似的,那么,协议会帮你消除重复的部分。

(2)⼆进制格式
HTTP/2 不再像 HTTP/1.1 ⾥的纯⽂本形式的报⽂,⽽是全⾯采⽤了⼆进制格式,头信息和数据体都是⼆进制,并且统称为帧(frame):头信息帧和数据帧。

(3)数据流
HTTP/2 的数据包不是按顺序发送的,同⼀个连接⾥⾯连续的数据包,可能属于不同的回应。因此,必须要对数据包做标记,指出它属于哪个回应。
每个请求或回应的所有数据包,称为⼀个数据流。

(4)多路复⽤
HTTP/2 是可以在⼀个连接中并发多个请求或回应,⽽不⽤按照顺序⼀⼀对应。
移除了 HTTP/1.1 中的串⾏请求,不需要排队等待,也就不会再出现「队头阻塞」问题,降低了延迟,⼤幅度提⾼了连接的利⽤率。

6 HTTP/3 做了哪些优化

HTTP/2 主要的问题在于,多个 HTTP 请求在复⽤⼀个 TCP 连接,下层的 TCP 协议是不知道有多少个 HTTP 请求的。所以⼀旦发⽣了丢包现象,就会触发 TCP 的重传机制,这样在⼀个 TCP 连接中的所有的 HTTP 请求都必须等待这个丢了的包被重传回来。

这都是基于 TCP 传输层的问题,所以 HTTP/3 把 HTTP 下层的 TCP 协议改成了 UDP!

7 HTTP2的缺陷

队头阻塞;
TCP 与 TLS 的握⼿时延迟;
⽹络迁移需要重新连接;

8 HTTP3与QUIC

HTTP/3 不仅仅只是简单将传输协议替换成了 UDP,还基于 UDP 协议在「应⽤层」实现了 QUIC 协议,它具有类似 TCP 的连接管理、拥塞窗⼝、流量控制的⽹络特性,相当于将不可靠传输的 UDP 协议变成“可靠”的了,所以不⽤担⼼数据包丢失的问题。

QUIC 协议的优点有很多,这⾥举例⼏个,⽐如:
⽆队头阻塞;
更快的连接建⽴;
连接迁移;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

触不可及<>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值