只有 GET 请求,并且只能传输文本 html 格式,返回的内容是 ASCII 字符串流
Connection: keep-alive,默认不开启keep-aliveContent-Length基于 SPDY(发音同speedy)协议,主要解决 HTTP1.1 效率不高的问题。

二进制分帧
将一个 TCP 连接分为若干个流(Stream),每个流中可以传输若干消息(Message),每个消息由若干最小的二进制帧(Frame)组成。每个用户的操作行为会分配一个流编号(Stream ID),表明用户与服务端之间创建了一个 TCP 通道;
协议将每个请求分割为二进制的控制帧和数据帧。
| HTTP1.x | HTTP2.0 |
|---|---|
| StartLine | Length |
| Header | Type |
| Body | Flags |
| Stream ID | |
| Payload |
多路复用(Multiplexing)请求头压缩请求优先级服务端推送(Server Push)基于 UDP 的 QUIC(Quick UDP Internet Connection)协议,主要解决 HTTP2.0 中存在的 TCP 拥塞控制影响导致少量的丢包就会导致整个 TCP 连接的所有流被阻塞。
减少TCP三次握手及TLS握手时间改进的拥塞控制避免队头阻塞的多路复用连接迁移前向冗余纠错可拔插
单调递增的Packet Number| 状态码 | 描述 |
|---|---|
| 200 | 成功 |
| 201 | 成功创建新资源的状态 |
| 204 | 服务器已满足请求,但不需要恢复 |
| 304 | 命中协商缓存 |
| 400 | 服务器由于客户端错误而无法理解或者请求处理 |
| 401 | 需要身份验证但失败或未提供身份 |
| 403 | 与 401 类似,一般是缺乏权限 |
| 404 | 服务器无法找到该资源 |
| 409 | 请求与资源当前状态冲突 |
| 410 | 请求资源不再可用 |
| 500 | 错误 |
简单请求preflight不是不能兼容,而是兼容为前提下发preflight对绝大多数服务器应用来说没有意义,反而把问题搞复杂。非简单请求CORS-preflight机制