【整理】HTTP相关版本对比

1. HTTP/1

超文本传输协议,处于计算机网络中的应用层,HTTP是建立在TCP协议之上,所以HTTP协议的瓶颈及其优化技巧都是基于TCP协议本身的特性。


缺陷:

  • 连接无法复用 ---------- 每次请求经历三次握手和慢启动
  • HOLB(队头阻塞) ---------- 带宽无法充分利用
  • 协议开销大 ---------- 头部携带信息过多,且每次头部信息基本无变化
  • 传输数据基本为明文 ---------- 不安全

浏览器默认对同一域下的资源,只保持一定的连接数,会阻塞过多的连接。

因此页面有多请求的建议使用请求复用或者把资源打包压缩传输。

2. HTTP/2

新特性:

  • 二进制传输 ---------- 流、消息、帧
  • 多路复用 ---------- 同域名所有通信在单个连接上完成;同域名只占用一个TCP连接
  • header压缩 ---------- 使用首部表,有变化才更新头部键值对
  • server push

缺陷:

  • 由于使用了多路复用,若TCP连接中出现了丢包,整个过程都需要重传;而HTTP/1而言有多个连接,问题不大

3.HTTP/3

基于UDP协议的QUIC协议

特点:

  • 0-RTT(往返时延) ---------- 缓存会话上下文
  • 多路复用 ---------- 原生实现(TCP没有的功能)
  • 认证加密 ---------- 报文头部、body都是认证或加密的
  • 前向纠错机制(FEC) ---------- 数据包包含冗余其他包部分数据,在丢失少量包的情况下可以直接组装,无需重传

参考:

HTTP/2及HTTP/3特性 - HackerVirus - 博客园

HTTP/3的过去、现在和未来_移动_Rustam Lalkaka_InfoQ精选文章

相关推荐
车载测试工程师16 分钟前
车载以太网网络测试-29【SOME/IP-SD】-SD状态机
网络·网络协议·tcp/ip·车载系统·php
高兴达23 分钟前
RPC--自定义注解注册发布服务
网络·网络协议·rpc
lang201509281 小时前
Reactor ConnectableFlux支持多订阅者
java·网络
在下Z.2 小时前
利用TCP协议,创建一个多人聊天室
网络·网络协议·tcp/ip
pipip.3 小时前
UDP————套接字socket
linux·网络·c++·网络协议·udp
Félix2513 小时前
计算机网络笔记(不全)
网络·计算机网络
阳洞洞4 小时前
https和http有什么区别
网络协议·http·https
朱包林6 小时前
day45-nginx复杂跳转与https
linux·运维·服务器·网络·云计算
孞㐑¥7 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
you秀8 小时前
HTTPS通信流程:SSL/TLS握手全解析
网络协议·https·ssl