在分块下载中,每个块都有扩展,可以在访问浏览器时加以利用。最后一个块还可以包含定义诸如内容长度之类的可选标头,如果我们通过流式传输一个大文件,我们可以在最后以 http 标头的形式提供该信息。
这在 http/2 中是如何工作的?最后一段中是否有扩展名或标题。我看到有数据有效负载,但没有扩展或可选标头 AFAICT。我只看到填充。
也许更好的问题是浏览器甚至
- 利用最后一个块中的可选标头?
- 利用每个块中的扩展?
也许程序可能会关心,但如果它是一个程序,我相信http/2,服务器可能只是更好地定义了api,并在发送响应+数据后使用推送机制?
如果我是为客户端定义 api 的服务器,如何在这个新的 http/2 世界中发送可选标头?
我试图使用wireshark来捕获下载跟踪,但chrome似乎使用QUICK,当我使用firefox和drive.google.com下载文件时,我似乎无法用wireshark解密SSL(它仍然存在在同一个跟踪中加密时,我实际上在 TLS 中看到了一些 http2 流量,而其他一些服务工作得很好)。使用“(Pre)-Master-Secret 日志文件名”似乎只工作了一半,我不太清楚为什么。我最终不得不重新启动一切并重新运行我的案例。
此外,在 Server hello 中,h2 是选择的协议,但是当我过滤到 ip.addr=(server hello google ip) 和 tcp.port=443 时,没有出现 http2 数据包
谢谢,院长