从上一篇文章,我们知道grpc使用HTTP/2作为底层传输协议,并且在响应消息包含 3 个主要部分:响应头信息、以长度作为前缀的消息以及 trailer。那么什么是trailer呢?大家很多人前端或者后端工作中都在使用http协议,但我咨询了一些同事,都没听过http trailer,包括没在使用grpc的自己。
什么是Trailer HTTP 标头?
Trailer HTTP 标头是一个响应标头,指示使用分块传输编码编码的消息的标头中是否存在一组指定的标头字段。它使发送者能够在分块消息的末尾放置附加字段以传递元数据。分块传输编码是 HTTP 版本 1.1 中包含的一种数据传输技术。要启用Trailer HTTP 标头中的trailer 字段,必须将TE 请求标头设置为trailers。用户代理准备接受的传输编码在 TE 请求标头中指定。Trailer HTTP 标头只有一个值。Trailer HTTP 标头语法是 header-name,它是在使用分块传输编码编码的消息预告片中找到的标头字段的集合。Trailer HTTP 标头的示例如下所示。
1 | HTTP/1.1 200 OK |
Trailer HTTP 标头的语法是什么?
Trailer HTTP 标头的语法是标头名称。使用 Trailer HTTP 标头的语法如下。
1 | Trailer: header-names |