- From: Maciej Stachowiak <mjs@apple.com>
- Date: Tue, 19 Feb 2008 10:52:51 -0800
- To: Kris Zyp <kzyp@sitepen.com>
- Cc: public-webapi@w3.org, Mark Baker <distobj@acm.org>
On Feb 19, 2008, at 7:55 AM, Kris Zyp wrote:
> Extra Connection Support
>
> The XMLHttpRequest should define a property called
> "extraConnection". When
> extraConnection is set to true, it indicates that this XHR object's
> connection SHOULD NOT be counted against the user agent's connection
> limit.
> That is if the user agent adheres to the two-connection limit as
> recommended
> by RFC 2616 section 8.1.4, it SHOULD allow two connections not
> counting this
> XHR object's connection. If the user agent has other or additional
> connection
> limits, this connection should not be counted in the accounting for
> these
> connection limits.
As with pipelining, I think this would be better handled at the HTTP
level than the XHR API level. We could define response headers for a
server to indicate that it allows more than two connections per
client, or alternately that a specific connection should not count
towards the limit.
- Maciej
>
>
> Only one XHR object should be allowed to gain extra connection
> status per
> document per server. Each document in the browser may be permitted
> one extra
> connection per server. Within a document if an XHR object has an extra
> connection status for domain1.com, no other XHR objects may have extra
> connection status for that server until the first XHR object has
> terminated
> it's connection. However, another XHR object may have extra connection
> status to domain2.com. Each document in the browser should have it's
> own set
> of extra connections for XHR objects. This limitation is intended to
> prevent
> a vector of denial of service attacks.
>
>
> To gain extra connection status, the extraConnection property on the
> XHR
> object can be set to true. When it is set to true, if the XHR object
> is
> allowed to gain extra connection status (no other XHR objects
> currently have
> extra connection status in this document for the specified target
> server),
> the XHR object will be given extra connection status and subsequent
> access
> to the property will return true. If the XHR object is not allowed
> to gain
> extra connection status, subsequent access to the property should
> return
> false. The following is an example of valid usage:
>
> var xhr = new XMLHttpRequest();
> xhr.open("GET","/resource",true);
> xhr.extraConnection = true;
> var succesful = xhr.extraConnection;
>
> Setting the extraConnection property should throw an exception if it
> is
> called before a URL is provided to the XHR object (through the open
> method
> or the constructor). The extra connection status remains in effect
> until the
> connection is closed (by network error on normal termination), at
> which point
> the property should return false.
>
> Since the extraConnection property usually indicates that the
> response will be a
> long-lived streaming response, user agents SHOULD NOT pipeline
> requests on this
> connection unless the author explicitly specifies such pipelines
> using pipelining
> control (see the Pipelining Control Proposal).
Received on Tuesday, 19 February 2008 18:53:10 UTC