HTTP/1.X 的文本(字符串), HTTP/2.0 采用二进制传送, HTTP/3.0 采用二进制传送

HTTP/1.x将内容打包成header/body中,内容通过\r\n来分割,在同一个TCP连接中只能等待response回来后才能发下一次请求,否则无法区分,是哪个请求的response

HTTP/2.0将数据打包成数据流,数据流里有标识优先级,可以解决关键请求被阻塞的问题,此外有ID的存在可以支持多路复用(不在需要像HTTP/1.x中等待上一个请求响应),且支持gzip压缩,减少传输数据量,服务端还能推送消息给客户端.常见例子gRPC

HTTP/3.0 之前的数据传输都是基于TCP协议,不可避免需要经历3次握手。HTTP/3.0是在QUIC的基础上发展起来的,底层使用UDP传输,上层仍然是HTTP/2.0,QUIC 为每个连接的两端分别分配了一个唯一 ID,上层连接只认这对逻辑 ID。网络切换或者断连时,只需要继续发送数据包即可完成连接的建立;

发表评论