http/2服务器推送的大多数用例是抢先将资产文件(例如javascript和css文件)推送到浏览器.我想知道可以使用http/2服务器推送将动态有效负载(如JSON文档)发送到客户端应用程序吗?从http2规范,它没有提到任何关于这一点.任何人都可以详细说明这个吗?为什么或者为什么不?
HTTP/2不是为了替代websockets,因为你提出请求(例如网页)并且可能会获得多个资源(例如,网页,显示网页所需的CSS,运行该网页所需的JavaScript). ..等).
因此,HTTP/2不是真正双向的,因为它仍然响应初始请求.
因此,如果您打算发送JSON请求以响应初始请求那么这很好 - 它只是另一种资源,与CSS和javascript非常相似.
但是,如果您打算保持通道打开以继续发送更多JSON有效负载以使您的页面保持最新,那么这不是HTTP/2的目的.这就是websockets的用途.
这个问题有一些关于HTTP/2和websockets的更多细节:HTTP/2是否使websockets过时了?