- From: Adrien de Croy <adrien@qbik.com>
- Date: Fri, 28 May 2010 11:40:41 +1200
- To: "Roy T. Fielding" <fielding@gbiv.com>
- CC: HTTP Working Group <ietf-http-wg@w3.org>
On 28/05/2010 10:45 a.m., Roy T. Fielding wrote: > On May 27, 2010, at 2:56 PM, Adrien de Croy wrote: > >> OK, so HTTP/1.0 is covered in any case, since 1xx responses are not allowed to HTTP/1.0 clients. >> >> That just leaves the issue of whether a client should indicate support (or desire) for progress notifications or not. >> >> I'm a little bit reluctant to suggest the progress notifications should not require any indication from the client. If only because some clients may want to be able to suppress generation of such messages for whatever reason. >> >> So I think my preferred option is a Progress token in the Connection header. That way I don't have to try and dream up something useful in terms of parameters for a potential Progress request header. It also means clients that aren't written (e.g. existing clients) to process these messages won't receive them for discarding and waste bandwidth (esp over slower high-cost circuits such as GPRS / G3 etc). >> > Sending an additional 10 to 30 bytes on every single request, > in the critical path, just in case the browser might access > such a resource (a one in a billion chance, at best), is an > extremely poor trade-off. > > actually if you're behind a corporate firewall that does this, it's closer to a 100% chance depending on scanning rules for the firewall AV. When we deploy this with WinGate and AV, that will then be millions of browsers (and other HTTP agents) seeing these 103s for pretty much all requests if we don't negotiate. I've tested Chrome, FF and IE8, but I haven't tested things like windows update, BITS service etc etc etc. There's no way to guarantee what won't break. I was of the impression switching behaviour based on User-Agent was frowned upon. It creates at best a maintenance issue for admins (keeping the list of UAs current). I agree it will be a long time before origin servers generate them. So probably it makes no sense for now for a proxy to forward the Progress token upstream, unless it's talking to another proxy. So actually I don't see many of these going over the wire onto the net. The main benefit is for a client talking to a local proxy. RFC2616-compliant proxies that don't understand Progress will already strip it. I don't know of any browser that doesn't already include a Connection header in every request already for keep-alives (even through default semantics for 1.1 is to keep alive so it's largely redundant), so overhead in practise will only be an extra 10 bytes. Also, clients could make some choices about likelihood of benefit before adding Progress to the Connection header. E.g. for retrieving images, JS, CSS etc it could be turned off. Or behaviour could differ for proxy connections vs direct and be configurable in the browser. Otherwise if we don't advertise support, and it's on by default, we need to resort to things like administrative settings, e.g. admin can turn it off/on per client IP or UA or Content-Type or something. That loads up burden on the admin. As for Henrik's point about benefit for non-supporting clients, where these messages will stop connection timeouts. I can understand a client may consider something is happening, but if there is no progress indicated to the user, we are back at square one (where we are now), where the user hits retry a few times then calls his tech support or admin. So I don't think the benefit will be there for browsers. Other agents certainly may benefit. Maybe the answer to that is a positive exception mechanism. E.g. proxy sends progress to anyone that asks for it, plus a list of extras that didn't. Adrien > If you want this feature to be deployable, then don't rely on > negotiation. It isn't going to happen. Use the user-agent. > > ....Roy > > >
Received on Thursday, 27 May 2010 23:41:22 UTC