HTTP1.0
特点:
- 添加状态码
- 引入HTTP头的概念
- 版本信息随请求发送
缺点:
- TCP短连接造成性能开销
- 只能一个个发送请求
HTTP1.1
特点:
- TCP长连接
- 请求的管道运输pipelining
在同一个 TCP 连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。
- host域
WEB浏览器可以使用主机头名来明确表示要访问服务器上的哪个WEB站点,这才实现了在一台WEB服务器上可以在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟WEB站点
https://www.cnblogs.com/duanxz/p/5230793.html - 提供 Keep-Alive缓存,允许我们建立一次 HTTP 连接
HTTP2.0
特点:
- 头部压缩 HPACK算法
同时发出多个请求,如果头部是一样或者相似,可以消除重复的部分。
- 新的二进制格式
头信息和数据体都是二进制,并且统称为帧(frame):头信息帧和数据帧。
1.1中,是纯文本形式的报文。 - 多路复用
- 可以在一个连接中并发多个请求或回应,而不用按照顺序一一对应.
- 解决了1.1中队头阻塞问题,降低了延迟,大幅度提高了连接的利用率,解决了最大并发数问题(浏览器本身的限制)
- 服务端推送
允许服务器在客户端缓存中填充数据,通过一个叫服务器推送的机制来提前请求
缺点:
- 多个 HTTP 请求在复用一个 TCP 连接,下层的 TCP 协议是不知道有多少个 HTTP 请求的。
HTTP3.0
QUIC的实现机制,使用UDP
HTTPS
- 在HTTP和TCP层之间加了SSL/TLS协议,解决了HTTP明文传输的安全问题。
- HTTP端口号80, HTTPS端口号443
- HTTPS协议需要CA认证,一般不免费
参考:
https://blog.csdn.net/csdnsevenn/article/details/104765065