RE: Fwd: I-D Action:draft-loreto-http-timeout-00.txt

Adrien writes:
> I can understand the issue between negotiating this on a hop-by-hop
> basis so a client can know how long an idle connection (no request sent
> yet) may be usable.  However the discussion of long-polling confuses
> this, since long-polling is different, it's not later use of an idle
> connection for a request, it's a delayed response.

That's right.  The discussion of long-polling relates to a request (Timeout) rather than a connection (Connection-Timeout).
 
> However I don't understand the issue where you discuss non-idempotent
> requests, and using a new connection.  I don't know what this actually
> gives you.
>
> In the case where there is a proxy, and say the proxy starts sending
> the
> request on an idle connection to a server at the same time as the
> server
> closes the connection, then the proxy will report an error to the
> client, and the server never got the request, and the client can retry.

That's precisely the problem - they can't.  If you send a non-idempotent request, it's not safe to retry the request.  Without a response you have no idea what happened.  You can't retry automatically.

Many HTTP implementations create a new connection for non-idempotent requests, which reduces the chances of losing the connection.  That's inefficient.  Hence: Connection-Timeout.
 
> What are you referring to when you mention a "null response"?   Is this
> like a 204 response?  

I've seen 200, 204, 304 - it matters little, though we should probably clarify that point :)

> I guess if intermediaries are between the client
> and server, the next request could come in on another connection.
> However if you used a 1xx response, the same connection could be used
> to
> send the final response when an event actually occurs.  So I believe
> 1xx
> response has benefits for long polling.

To the extent that it ensures that the connection remains open, sure.  You still need to know when the 1xx is required.

--Martin

Received on Wednesday, 9 June 2010 23:16:54 UTC