HTTP1.0
HTTP1.0是1996年引入的
- HTTP1.0仅提供了最基本的认证,用户名和密码都未加密
- HTTP1.0仅支持短连接,每次发送数据都会经过TCP三次握手和四次挥手,效率低
- HTTP1.0只使用了
header
的if=modified-Since
和Expires
作为缓存失效的标准 - HTTP1.0不支持端点续传,每次发送数据都会发送全部数据
- HTTP1.0认为每台计算机都只能绑定一个IP地址,不支持虚拟网络
HTTP1.1
HTTP1.1是1999年引入的
- HTTP1.1使用了摘要算法进行身份验证
- HTTP1.1默认使用长连接
只需要建立一次连接,可以传输多次数据,传输完成之后,只需要一次切断即可。通过请求头的
keep-alive
设置
- HTTP1.1支持端点续传
通过请求头的
Range
实现
- HTTP1.1使用了虚拟网络
在一台物理服务器上可以存在多个虚拟主机,共享一个IP地址
HTTP2.0
2015年建立
- 头部压缩:利用
HPACK
算法进行压缩
由于HTTP1.1头部经常出现Cookie、Accept、Sever、Range等字段可能会占用几百到几千字节,而body有时只有几十字节(“头重身轻”)
-
二进制格式:HTTP2.0选择了更靠近TCP/IP的二进制格式,抛弃了ASCII码,提高了解析效率
-
强化安全:HTTP2.0一般都跑在HTTPS上
-
多路复用:一个连接上可以有多个请求