Early-Data 头
HTTP Early-Data
请求头由中介设置,用于指示请求已通过 TLS 早期数据传输,并指示中介理解 425 Too Early
状态码。
如果客户端最近与服务器进行了交互,早期数据(也称为零往返时间 (0-RTT) 数据)允许客户端在连接的第一次往返中向服务器发送数据,而无需等待 TLS 握手完成。这减少了客户端和服务器之间重复连接的延迟,但存在安全隐患,因为早期数据容易受到重放攻击。
Early-Data
头不是由请求的发起者(即浏览器)设置的。
语法
http
Early-Data: 1
示例
带有 Early-Data 头的 GET 请求
希望使用早期数据的客户端可以在发送 TLS ClientHello
后立即发送 HTTP 请求。在早期数据中发送请求意味着客户端愿意在收到 425 Too Early
状态码时重试请求,因此不包含 Early-Data
头。
http
GET /resource HTTP/1.1
Host: example.com
在与客户端的 TLS 握手完成之前转发请求的中介会发送带有 Early-Data
头设置为 1
的请求。
http
GET /resource HTTP/1.1
Host: example.com
Early-Data: 1
规范
规范 |
---|
在 HTTP 中使用早期数据 # 头 |
浏览器兼容性
加载中…