http https http2 http3

http http2 http3 https

http: 一个简单的请求响应协议(进行超文本,文本,图像、视频的传输)

http和tcp的关系

http指定了客户端可能发送给服务器什么的消息以及得到什么样的响应;Tcp只是http的工具人,http把数据交给tcp传输

tcp和udp:

他们的作用都会建立连接,数据传输通道;但是tcp会对数据进行分组和排序,可以保证数据不会丢失;udp不提供数据包分组和排序,传输数据快,无法确定数据的安全,数据可能会丢失

http特点:超文本、灵活可拓展,请求-应答,无状态,明文

分组大数据传输时需要设置 TRansfer-Encoding: chunked(不可与 content-length 同时使用)

短链接:请求一次就会有一次响应,就会建立 TCP 数据传输通道,任务结束,通道关闭

长链接:设置 Connection:keep-alive 就可以保持 TCP 通道在一段时间内不会失效,可以发送和接受多个数据请求 ,手动设置 Connection:close,关闭链接

https

在http的基础上加入了SSL验证

数据加密过程:

客户端发起请求=>服务器返回一个Y公钥给客户端=>客户端随机生成一个秘钥X,通过公钥Y加密后传给服务器=>服务器通过公钥Y解析得到秘钥X,把数据通过秘钥X加密后传给客户端=>客户端拿到数据后通过秘钥X解密

http2

HTTP2中:同域名下的所有通信都在单个连接上完成,这个连接可以承载任意数量的双向数据流。数据流一消息的形式传递,消息有一个或多个帧组成。多帧乱序发送,根据帧首部标识重新组合。

头部压缩:

	http2在客户端和服务端使用一个表来存储和定位之前发送的键值对,相同的数据,不再通过每次请求和响应发送

服务器推送:服务器可以在发送页面Html时主动推送其他资源。例如:服务端主动将css,js文件主动推送给客户端,不需要等到下次客户端解析html再发送请求

Http3

http3摒弃了TCP(稳定可靠),采用了极快但是可靠的UDP(原来的UDP快但是不可靠,数据可能会丢失)   新增了QUIC协议

QUIC协议

  • QUIC协议提供类似于HTTP2的流功能
  • QUIC协议使用流ID取代IP和端口,这样就能实现连接迁移。例如说从4G信号切换到wifi,下层的IP和端口变了,但是由于QUIC的流ID没有变,这个连接不会变,可以继续使用这个连接。

总结

这三者,都用TCP的握手协议去理解,都是握手,不同的是握手方式不一样。

HTTPS 是类似于 TCP 握手的工作方式,先工作在 HTTP1 上,通过 HTTP1 传递交换得到秘钥,然后切换到 HTTPS 上工作;

HTTP2也是基于 TLS 的,所以 HTTP 2 的工作方式和 HTTPS 也是同样的过程,需要握手建立 TLS 连接,只是 TLS 连接完成后,发送一个 HTTP2 的连接确认消息,确认后,客户端服务器使用HTTP2进行连接通讯。

HTTP3 首先要建立好 HTTP 2 连接,然后发送 HTTP 2 扩展帧,这个帧包含IP和端口,浏览器收到扩展帧,使用该 IP 和端口,使用 QUIC 建立连接,如果成功,断开 HTTP2,升级为HTTP3。

原文链接:https://blog.csdn.net/majing0520/article/details/114070732

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值