A study of HTTP/2's Server Push Performance Potential
Modern web pages have complex structures comprised of up to hundreds of different resources, such as scripts and images. Server push is an HTTP/2 feature enabling servers to preemptively send resources to clients before they realize they need them to render a page. The objective is to reduce the amount of time the browser has to wait for data to be transferred, and consequently total page load time. Our goal in this work is to quantify how much server push can actually reduce web page load times. We approach the problem from both theoretical and experimental perspectives. We start by deriving an upper bound for the load time reduction afforded by server push. Then we proceed to actually evaluate an idealized push implementation on the Alexa Top 100 global sites, against a non-push HTTP/2 baseline. Our results show a linear relationship between latency and the benefit of server push. Moreover, pages with taller dependency trees tend to benefit the most from it.