HTTP1.0和HTTP2.0有什么区别
https://www.mianshiya.com/bank/1790948499480616961/question/1780933295710695425#heading-9
回答重点:
HTTP1.0版本主要增加了以下几点:
- 增加了HEAD和post等新方法
- 增加了响应状态码
- 引入了请求头和响应头
- 在请求中加入了HTTP版本号
- 引入了Content-Type 使得拆书的数据不再限于文本
HTTP1.1版本主要增加以下几点:
- 新增了连接管理即keepalive,允许持久连接
- 支持pipeline,无需等待前面的请求响应,即可发送第二次请求
- 允许响应数据分块
- 新增缓存控制和管理
- 加入了Host头
HTTP/2主要增加了以下几点:
- 是二进制协议,不再是文本协议
- 支持一个TCP连接发起多请求,移除了pipeline
- 利用HPACK压缩头部,减少数据传输量
- 允许服务端主动向客户端推送数据
连接方式
HTTP/1.0 默认使用短连接,每个请求/响应对需要单独建立和关闭TCP连接,频繁建立连接会导致高延迟
HTTP/2.0 默认采用长连接和多路复用,允许单个TCP连接上同时传输多个请求和响应,显著减少延迟
多路复用
HTTP/1.0 没有多路复用功能,多个请求必须按顺序逐个处理(串行),容易引发队头阻塞
HTTP/2.0 支持多路复用,多个请求和响应可以并行传输,避免队头阻塞,提升页面加载速度
头部压缩
HTTP/1.0: 头部以纯文本形式传输,且每次请求都需要重复发送完整的头部,导致冗余和带宽浪费
HTTP/2.0 采用HPACK算法对头部进行压缩,并通过维护“头部表”避免重复传输,减少数据量
服务器推送
HTTP/1.0 没有服务器推送功能,客户端必须主动请求所有资源
HTTP/2.0 服务器可以主动向客户端推送资源,减少客户端等待时间,提升性能
二进制协议 VS 文本协议
HTTP/1.0 基于文本格式解析,处理复杂且容易出错
HTTP/2.0采用二进制分帧层,讲数据分割为更小的帧,提升解析效率,减少错误