New issue
Advanced search Search tips

Issue 876765 link

Starred by 4 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Aug 23
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

SETTINGS_ENABLE_PUSH is disabled

Reported by sebdecke...@gmail.com, Aug 22

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.2 Safari/605.1.15

Steps to reproduce the problem:
1. nghttpd --htdocs . --hexdump --verbose 8888 key.pem cert.pem
2. Visit: https://localhost:8888/
3. Check server debug output

What is the expected behavior?
Server should be able to HTTP/2 server push assets to the client. This is only permitted if client sets SETTINGS_ENABLE_PUSH in the SETTINGS frame as 1.

What went wrong?
SETTINGS_ENABLE_PUSH is 0 meaning the server can not use HTTP/2 Server Push to improve resource loading performance.

Did this work before? Yes 

Does this work in other browsers? N/A

Chrome version: 70.0.3530.0 (Official Build) canary (64-bit)  Channel: n/a
OS Version: OS X 10.13.6
Flash Version: 

HTTP/2 Server Push is a critical performance feature. Please fix/revert.
 
nghttpd.txt
4.9 KB View Download
Components: Internals>Network>HTTP2
I notice inconsistency in the behaviour. Sometimes Chrome has SETTINGS_ENABLE_PUSH enabled and sometimes disabled.

After restarting the browser about 10-20 times I notice this problem only approximately half of the time.

Is it possible that this is controlled by a feature flag or bucketed A/B experiment?

All `about://flags` are disabled ("Reset all to default").
Labels: Needs-Triage-M70
Status: WontFix (was: Unconfirmed)
Yes, there is an A/B experiment on certain channels.  It will expire in the near future.  This is working as intended.

Also, if you have hard evidence that push improves performance in a real world setting, please let me know.  So far no convincing evidence has been found, that's why we are running this experiment.
Can you please explain the qualifications “real world” and “convicing”?

Are you considering cache digest in this research?

What would be convincing, real world evidence of other standards?

I am happy to assist with this research. Just need to know the conclusions haven’t already been made prior to analysis.
Real world to me means between actual servers and actual users on actual internet connection.  Simulations run locally might give biased result because of usage pattern (like what proportion of loads are first loads) and network weather is non-representative.

Convincing to me means enough statistical significance.  I do not find any of "50 ms improvement with +/- 200 ms error bars", "huge improvement on a small sample size", "definitely small improvement on some sites, small regression on some others, and we do not understand why" convincing.

No, we are not considering cache digest at this point.

But we are considering link rel=preload, eventually with 103 Early Hints, in the baseline, which makes it more difficult to prove that push is an improvement.
This won't be convincing (yet), but I figured we'd share it.  We looked at incremental server-side rendering with H2 push last year and had quite positive results: https://www.bitovi.com/blog/utilizing-http2-push-in-a-single-page-application

It looks like a big performance win on slow internet connections compared to traditional SPA app performance.  But this is an apples to oranges comparison.  It's not comparing incremental SSR to other server-side techniques.  However, incremental SSR is easier to adopt if coming from a SPA app.

The technique in an option in DoneJS 3 which was just released.  We should have some real-world sites using it shortly.  

Sign in to add a comment