H2 Server Push - Resources downloaded twice

Hi, I am seeing same resource being downloaded twice (basically once pushed via http link header) and second time also download(i believe as per traditional parsing of html).

Here is the screenshot


You can see that CSS and JS are being downloaded twice. First time it has server pushed in response header via link header and again second time.

Can anyone let me know why this is happening?

Please note that as expected browser don’t download these resources twice so issue is not impacting real users, it is just that webpagetest is not giving right results.


Do you have a link to the actual test or the page that it is coming from?

Chrome’s dev tools only shows HTTP/2 pushed resources at the time the browser requests it so just because you may not see it in dev tools locally doesn’t necessarily mean it isn’t downloading again. You need to capture a netlog (chrome://net-internals) to see for sure.

Thanks for reply Pete.

Here is the test link


Vendor.js and apps.js dowloaded twice along with other CSS’s.

They are different URLs. Specifically, I assume a unique build version in the path has changed and the site is pushing resources for a different build that what are actually needed (so yes, they are getting downloaded twice).

Pushed (version 1612752339): https://www.nvi.com.au/static/1612752339/legolite/js/vendor.js

Fetched (version 1612845452): https://www.nvi.com.au/static/1612845452/legolite/js/vendor.js

FWIW, this is exactly one of the cases why PUSH is being removed from Chrome. It’s way too easy (and common) to push the wrong resources.

Hi, it looks like your resources are being pushed by an Adaptive Acceleration feature in Akamai Ion. This uses real traffic data to build profiles of resources which should be pushed. We strongly recommend that the policies are manually reset on front-end release, to avoid this situation of stale pushes. Please see documentation here: https://developer.akamai.com/blog/2019/05/31/introducing-adaptive-acceleration-reset-feature-ion

How’s that different from linking to the same CSS file in HTML head with two different “?ver=” parameters? I’m not saying HTTP push is perfect (it’s far from it) but that doesn’t seem like a good reason to remove it.

It’s being removed for a lot of reasons but one of the big ones is that it makes the vast majority of pages slower when it is used (even when it is used correctly).