- Published on
HTTP/2 基础
- Authors

- Name
- Pony Ma
http2不能替代所有的HTTP,get post动词,状态码,header将于HTTP一致,HTTP2旨在提高在线传输数据的效率
与HTTP1相比,主要的区别和改进
- http2是一种二进制协议,HTTP1是文本的,二进制协议的解析效率更高,可读性更低
- HTTP2是多路复用的,解决了HOL阻塞问题,当单个TCP连接上发出多个连接时,HTTP可能1.1可能出现问题,整个连接是有有序且阻塞的, 一个慢请求可能会阻塞后续请求,多路复用允许多个请求和响应同时在线上传输,类似于协程的异步
- HTTP2压缩了请求头来减少开销,由于HTTP1.1是无状态的,所以每次这些请求头都会重新发送,
- HTTP2服务器推送,允许服务器主动将响应发送到客户端缓存
与websocket相比
- HTTP2是二进制传输,websocket是二进制或文本
- HTTP2只能服务端推送,并且只是推送到客户端缓存,不能直接推到应用程序本身,没有API来获取这些事件, 但他可以与服务器推送事件(SSE)技术相结合,SSE允许服务器将数据异步推送到客户端, 可以认为是一种单向的发布-订阅模型,HTTP2+SSE实现双向推送 websocket本身就是双向推送的
- websocket是单独的协议,请求头少,传输开销少,高吞吐量下占优势,例如游戏 HTTP2通用性更好,不需要引入新的协议,很多基础设置,防火墙等等都是基于HTTP设置的,安全性,扩展性,兼容性更好
队头阻塞
某一列的第一个数据包(队头)受阻而导致整列数据包受阻