nghttp2.org

HTTP/2 C library and tools

nghttp2.org Enabled HTTP/2 Server Push

We implemented HTTP/2 server push in nghttpx and we enabled server push in nghttp2.org site.

When you access https://nghttp2.org via HTTP/2 protocol, CSS file /stylesheets/screen.css is pushed to client. If you inspect the response header closely, you will find Link header field like this:

1
link: </stylesheets/screen.css>; rel=preload; as=stylesheet

We operate nghttp2.org site using nghttpx proxy server in front and nginx on its back. The Link header field above is generated by nginx. When nghttpx proxy sees this in response header, it initiates server push for resource denoted by path enclosed by ‘<’ and ‘>’. We specifically check link relation preload to decide the resource should be pushed or not. See the manual page to enable this feature in nghttpx.

We also push different resources, CSS and font files, under https://nghttp2.org/documentation/