【发布时间】:2015-06-03 05:25:48
【问题描述】:
对于SPDY,我们需要实现一个PushStrategy并注册它来推送资源。
HTTP2 支持怎么样?
我喜欢 nginx 的想法,它包括读取 HTTP 响应中的链接头:https://nghttp2.org/blog/2015/02/10/nghttp2-dot-org-enabled-http2-server-push/
谢谢!
【问题讨论】:
标签: jetty server-push http2
对于SPDY,我们需要实现一个PushStrategy并注册它来推送资源。
HTTP2 支持怎么样?
我喜欢 nginx 的想法,它包括读取 HTTP 响应中的链接头:https://nghttp2.org/blog/2015/02/10/nghttp2-dot-org-enabled-http2-server-push/
谢谢!
【问题讨论】:
标签: jetty server-push http2
Jetty HTTP/2 完全支持 HTTP/2 Push,实际上有不同的风格。 Webtide's website 已经启用了 Jetty 的 HTTP/2 Push。
有一个PushCacheFilter,它基于Referer 标头实现了在Jetty SPDY 的PushStrategy 中实现的相同算法。
有一个PushSessionCacheFilter,它使用构建器来实现更复杂的方法来实际推送资源。
目前两者都使用 Jetty 特定的 API,试图将它们作为 Servlet 4.0 规范的标准,并在实际示例中对其进行测试。
这种方法的好处是完全自动化,并且不需要应用程序支持:开箱即用,适用于任何旧的/遗留的 web 应用程序。
Jetty 团队当然可以探索使用 Link 标头的可能性,但这似乎需要应用程序的支持(应用程序必须添加具有正确格式的 Link 标头),以及一个代理层影响表演。
这是由https://bugs.eclipse.org/bugs/show_bug.cgi?id=463457 跟踪的,欢迎任何贡献。
为了实现自己的资源推送策略,你可以编写一个简单的 Servlet 过滤器,并在其中使用 Jetty 特定的 API(即 Dispatcher.push(...) 或 PushBuilder API)来推送你自己的资源,类似于上面提到的过滤器是做什么的。
【讨论】: