HTTP/2 Server Push - what is happening during 'Reading Push' ?

216 views
Skip to first unread message

steve manuel

unread,
Dec 31, 2016, 12:58:47 AM12/31/16
to golang-nuts

I know this is a Chrome thing, but my questions pertain more to what the server has actually sent prior to the "pushed" response seen in the screenshot below.


[click to enlarge]


can anyone explain what is happening in the 0.53ms spent 'Reading Push'? The json response was server pushed in a prior response. furthermore, does it matter that the push was executed after the initial response was written? i can't tell from tests.

from http2 spec, it seems like PUSH_PROMISE frames aren't read until receiver accepts the response. Is 'Reading Push' time spent accepting response (and then receiving pushed data from stream)?

I have some concerns about overloading a client peer with pushed data. there is a routine in my program which could potentially push hundreds of resources - and I don't want to waste bandwidth or cause trouble for peers. If the PUSH_PROMISE is all that is sent in a server push, and then data is received only once the subsequent request is made then I'm probably fine. 

Just looking for some clarity on how a server implementation like Go's handles this. I'm using the http.Pusher Push method in go1.8beta2

Thank you,
Steve

Oskar

unread,
Mar 2, 2017, 11:15:24 AM3/2/17
to golang-nuts
+1 on this! Let me know if you have figured it out Steve.

I have also long time spent on "Reading Push" while investigating different server push scenarios. And in fact it seems like the resource is still on the server while "Reading Push". I've implemented server push with node-spdy and in my case, the pushed stream is not finished on the server, i.e still "Reading Push" on the client, until the client is done "Reading Push". I've read that the pushed resource should be available from the browsers memory (not the cache), but this is not the case for my scenarios since the stream is still on the server. 

rasmu...@gmail.com

unread,
Mar 28, 2017, 8:27:32 AM3/28/17
to golang-nuts
I am also experiencing issues with server push in Go/1.8 using the http.Pusher interface.
I think my problem relate to yours, when I use pusher I expect to get a near instant load time on a pushed resource when I request it through the JS console a couple of seconds later.
But I also get stuck in the "Reading push" state way to long which effectively duals my load time compared to not using server push.

Anyone got any ideas or solutions to this?

rasmu...@gmail.com

unread,
May 21, 2018, 7:11:23 AM5/21/18
to golang-nuts
To whom it may concern, I have found the reason for this problem. It's a bug i dev-tools not Go, check my blog post on the matter for more details https://blog.rasmusj.se/2017/03/bug-network-throttling-in-google-chrome.html
Reply all
Reply to author
Forward
0 new messages