HTTP/2 Server Push Plugin adds Server Push capabilities for Joomla! powered http/2 enabled servers as specified in RFC 7540 Section 8.2 . This technology minimizes the time needed to load the page by reducing the number of requests and by pre-loading resources.
This website (horza.org) uses this technology, so you can just check out developer console to … I don’t know… make sure it’s still there :) See, you already received the large images from my Link Aggregation For The Masses article, even though you never visited it !
This plugin won’t do anything if your server doesn’t support http2 server push functionality. In case your server doesn’t support HTTP2 Server Push technology, try CloudFlare. It’s free and totally awesome. Just enable SSL (yeah, that’s free too) and you’ll get http2 including server push automatically.
In plugin’s configuration interface, list all the resources that you want to preload using http2 server push technology in the corresponding boxes.
/media/system/js/core.js /media/system/js/mootools-core.js /media/system/js/mootools-more.js
Naturally, you can also find those resources using your web browser’s developer tools, which is the recommended method if you don’t want your visitors to see the debug output.
Right now, I’m looking at automatically recognizing the most used resources using Joomla’s statistics, and automatically pushing and preloading them. If you’d like to speed up the development, please consider a donation via PayPal to [email protected] . Read more at https://www.horza.org
A bit about HTTP/2 server push technology
“HTTP/2 allows a server to pre-emptively send (or “push”) responses (along with corresponding “promised” requests) to a client in association with a previous client-initiated request. This can be useful when the server knows the client will need to have those responses available in order to fully process the response to the original request.”
Additionally, we can use server push features to “preheat” browser’s cache, much like we would if we used html’s “link rel=preload” feature. If we for example know that the client is going to open our i.e. image gallery, we can pre-emptively send all the js, css and images that this gallery needs, so when the client actually clicks it, it’s lightning-fast because everything is already downloaded and cached.