http/2 服务端推送的最大用例是先发制人地将 Assets 文件(例如 javascript 和 css 文件)推送到浏览器。我想知道可以使用 http/2 服务器推送将动态有效负载(例如 JSON 文档)发送到客户端应用程序吗?来自 http2-spec ,它没有提到任何关于此的内容。任何人都可以详细说明这一点吗?为什么或者为什么不?
最佳答案
HTTP/2 并不打算替代 websockets,因为您发出请求(例如网页)并且可能会返回多个资源(例如网页、显示网页所需的 CSS、运行该网页所需的 JavaScript。 .. 等等。)。
因此 HTTP/2 并不是真正的双向,因为它仍然响应初始请求。
因此,如果您打算发送 JSON 请求以响应初始请求,那很好——它只是另一种与 CSS 和 javascript 非常相似的资源。
但是,如果您打算保持 channel 打开以不断发送更多 JSON 有效负载以保持您的页面最新,那么这不是 HTTP/2 的目的。这就是 websockets 的用途。
这个问题有一些关于 HTTP/2 与 websockets 的更多细节:Does HTTP/2 make websockets obsolete?
关于http2 - HTTP/2 推送 JSON 有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37954681/