Alternative long term solution: when the user pauses the download,
reset the stream. This corresponds best to what the user wants: no
more data are downloaded after a roundtrip. However, connection
resumption is a very trickly task, and I understand that there are
engineers working on it right now.
On Thu, Apr 16, 2015 at 8:59 AM, Bence Béky <b...@chromium.org> wrote:Alternative long term solution: when the user pauses the download,
reset the stream. This corresponds best to what the user wants: no
more data are downloaded after a roundtrip. However, connection
resumption is a very trickly task, and I understand that there are
engineers working on it right now.Why is this not the right answer? Why do we not stop the download, then resume (with Range requests)? It's an HTTP/2 client - we can presume that much of the stupidity of servers is fixed.
To be honest, I don't understand entirely why we don't do this for HTTP/1.1 clients. I suspect it was to work around some broken implementations?
--
You received this message because you are subscribed to the Google Groups "net-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to net-dev+u...@chromium.org.
To post to this group, send email to net...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/CACvaWvZZbRa4dwRUOck%3DtBv%3DFRXQJ7q0o7O9yL%3DwDHdruEvsjw%40mail.gmail.com.
--
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/10311429210710%40webcorp02h.yandex-team.ru.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/10311429210710%40webcorp02h.yandex-team.ru.
I also want to call out that Bence's email suggested that it wasn't
only downloads that were triggering this behavior at the moment; media
streaming does as well. So if we're going to solve this at the
consumer level, we need to make sure to change both the downloads
system and whatever system does the media streaming (hopefully not
flash plugins :-J).
--
You received this message because you are subscribed to the Google Groups "net-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to net-dev+u...@chromium.org.
To post to this group, send email to net...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAJ_4DfSQp636wq%3DZXfeXpiXYwu93NT3vLfy6CXQNegzfA9DWzA%40mail.gmail.com.
>
>>
>> I also want to call out that Bence's email suggested that it wasn't
>> only downloads that were triggering this behavior at the moment; media
>> streaming does as well. So if we're going to solve this at the
>> consumer level, we need to make sure to change both the downloads
>> system and whatever system does the media streaming (hopefully not
>> flash plugins :-J).
>
>
> *nod*
>
--
You received this message because you are subscribed to the Google Groups "net-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to net-dev+u...@chromium.org.
To post to this group, send email to net...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAFbEG_qnxXMf9_V%3D3oDJgh%2BQjy%3DvLq6iPtvWTFPEvHkhPS0Qnw%40mail.gmail.com.
Bence
>
>>
>> I also want to call out that Bence's email suggested that it wasn't
>> only downloads that were triggering this behavior at the moment; media
>> streaming does as well. So if we're going to solve this at the
>> consumer level, we need to make sure to change both the downloads
>> system and whatever system does the media streaming (hopefully not
>> flash plugins :-J).
>
>
> *nod*
>
--
You received this message because you are subscribed to the Google Groups "net-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to net-dev+u...@chromium.org.
To post to this group, send email to net...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAFbEG_qnxXMf9_V%3D3oDJgh%2BQjy%3DvLq6iPtvWTFPEvHkhPS0Qnw%40mail.gmail.com.--
You received this message because you are subscribed to the Google Groups "net-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to net-dev+u...@chromium.org.
To post to this group, send email to net...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAF8qwaCfA649Yz5PsVu1Un9VJtC5Y0LsLzxk2%2BhBVE0mw4pmsw%40mail.gmail.com.
16.04.2015, 23:51, "David Benjamin" <davi...@chromium.org>
Requiring consumer involvement also causes problems as the web platform tries to grow more and more interesting fetch APIs. Because now we may have:
a) We would like JS code to participate in pushback when consuming streams.b) We don't trust that JS code not to hang a stream.
Like Ryan says, this is a problem for HTTP/1.1 on the socket limit too. Since we globally pool and impose limits on sockets across mutually distrusting source origins (i.e. my request to google.com may go through the same socket as your request to google.com, not that requests to google.com and example.com share sockets. The latter is obviously crazy.), we need to act as arbiter on this somehow.
I don't have a good answer for this, but untrusted consumers throw yet another wrench into the mix.
David
Given that HTTP2 is https-only feature (JS code is the code the site trusts), can we assume that website is not interested in shooting into its own leg by spawning tons for requests and bloating the connection window? Even now (like with plain socket limits) js can open max streams per session and hang the whole origin.
On Thu, Apr 16, 2015 at 5:36 PM Alexey Baranov <baran...@yandex-team.ru> wrote:16.04.2015, 23:51, "David Benjamin" <davi...@chromium.org>Requiring consumer involvement also causes problems as the web platform tries to grow more and more interesting fetch APIs. Because now we may have:a) We would like JS code to participate in pushback when consuming streams.b) We don't trust that JS code not to hang a stream.
Like Ryan says, this is a problem for HTTP/1.1 on the socket limit too. Since we globally pool and impose limits on sockets across mutually distrusting source origins (i.e. my request to google.com may go through the same socket as your request to google.com, not that requests to google.com and example.com share sockets. The latter is obviously crazy.), we need to act as arbiter on this somehow.
I don't have a good answer for this, but untrusted consumers throw yet another wrench into the mix.
DavidGiven that HTTP2 is https-only feature (JS code is the code the site trusts), can we assume that website is not interested in shooting into its own leg by spawning tons for requests and bloating the connection window? Even now (like with plain socket limits) js can open max streams per session and hang the whole origin.
That's not sufficient because of CORS. https://some-common-origin.com/blah send CORS headers and then https://a.com/ and https://b.com/ can both be trying to fetch from it.
Plus, as you mention, this problem isn't limited to HTTP/2. We have an analogous issue with HTTP/1.1.
Given that HTTP2 is https-only feature (JS code is the code the site trusts), can we assume that website is not interested in shooting into its own leg by spawning tons for requests and bloating the connection window? Even now (like with plain socket limits) js can open max streams per session and hang the whole origin.
That's not sufficient because of CORS. https://some-common-origin.com/blah send CORS headers and then https://a.com/ and https://b.com/ can both be trying to fetch from it.True. But that also means that some-common-origin.com chose explicitly to trust a.com and b.com. Unless CORS is smth like * :)
Plus, as you mention, this problem isn't limited to HTTP/2. We have an analogous issue with HTTP/1.1.The difference I feel here is that number of requests in HTTP/1.1 is very explicit thing the developer can control, the limits are not hidden, and there are a lot of articles in the web about that limit. For HTTP/2, recv/send windows as well as max stream limits are the internal details of HTTP2 and what is more, they may dynamically change over the lifetime of the connection. But the web developer cannot know it all, unless she wants to mess with net-internals, but this tool is much less widely known. Perhaps that parameters should be visible in dev tools. And performance guides for HTTP/2 yet to come I hope will explain all that issues.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/CACMu3trNFO62mjABX4%3DJY8xLBF5A1yYjyYzbRaiJL%3Dadpja%2B7A%40mail.gmail.com.