http1.0、1.1、2.0 协议的区别?
参考https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/232
HTTP/1.0
- 第一个在通讯中指定版本号的HTTP协议版本,至今仍被广泛采用,
- 无状态:服务器不跟踪不记录请求过的状态
- 无连接:浏览器每次请求都需要建立tcp连接
- 队头阻塞:前一个请求响应到达之后下一个请求才能发送
HTTP/1.1
- 长连接:新增Connection字段,可以设置keep-alive值保持连接不断开
- 管道化:基于上面长连接的基础,管道化可以不等第一个请求响应继续发送后面的请求,但响应的顺序还是按照请求的顺序返回
- 缓存处理:引入了更多的缓存控制策略
- 断点传输:如果资源过大,将其分割为多个部分,分别上传/下载,遇到网络故障,不用从头开始
http2.0
- 二进制分帧:采用了二进制而非明文来打包、传输客户端—服务器间的数据
- 多路复用: 在共享TCP链接的基础上同时发送请求和响应,同一域名下所有访问都是从同一个tcp连接中走
- headers压缩
- 服务器推送:服务器可以额外的向客户端推送资源,而无需客户端明确的请求
网友评论