Re: Extra Connection Support Proposal

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