如何在HTTP体流期间/之后发送HTTP报头?这方面有具体的工作吗?



现在,HTTP头都需要在发送到浏览器之前发送。

这在React 18 Streaming等新技术中尤其成问题,因为在这些新技术中,某些报头(如缓存报头和103 Early Hints)只能在HTTP流的末尾确定。理想情况下,这些延迟的报头应该在流结束之前发送到浏览器。

是否有规范工作组或浏览器供应商的努力,使报头在HTTP正文期间/之后发送?

经过研究,似乎没有关于这方面的规范工作,但我想知道是否有浏览器供应商在做这方面的工作?(有些人在StackOverflow上很活跃)

上下文:我是vite-plugin-ssr和react-streaming的作者。

有一个用于分块编码(Http 1.1, https://httpwg.org/specs/rfc7230.html#header.trailer)的尾部字段的规范。

HTTP2规范(不支持分块编码)直接允许在包含http主体的数据帧之后使用报头帧https://datatracker.ietf.org/doc/html/rfc7540#section-8.1。

库支持可能会有所不同,因为大多数http库都试图抽象掉底层协议中的差异。在Javascript中,你会对在跨浏览器标准获取API中启用尾随标头感兴趣。MDN文档建议对Response对象上的trailers字段提供参考支持:https://developer.mozilla.org/en-US/docs/Web/API/Response.

最新更新