separate http2 and push browser capability detection
aomarks opened this issue · 3 comments
Currently we only have the push capability in the browser capability detection library, which implies http2. But it seems to be the case that some browsers (Safari?) implement http2 but not yet push. http2 without push is still something we'd probably want to switch builds on (i.e. multiplexing), so we should have two capabilities.
Hi, I'm realy thankful for this project. I've a question about the implementationi though.
Why not using/reimplementing Surma SimpleH2Server for server push ? Instead of using a reverse proxy in front of the server ?
Hi @syu93.
We thought we'd start out with an implementation for Node.js because we think it's approachable to a lot of people who work in web dev and are most familiar with JavaScript. It can be used as a library, so people can add it as middleware to their own Node server (e.g. using Express) that implements their custom APIs, etc.
Once the Node core library has support for HTTP/2 (project), we'll most likely update this project to offer full HTTP/2 push support. There are some JavaScript implementations of HTTP/2 available, but we saw some issues with stability and performance, so we think for now a reverse proxy is the way to go if you're using Node.
A Go server similar to SimpleH2Server that has the same out-of-the-box differential serving features as this one is definitely something we've thought about working on as an additional implementation. Go already has a mature implementation of HTTP/2, so like you said, a reverse proxy would not be needed.
Thanks for the question!
Closing because prpl-server is now in maintenance mode. See https://github.com/Polymer/prpl-server#prpl-server for our recently added maintenance mode notice, and recommendations for alternatives.