httpwg / httpbis-issues

1 stars 1 forks source link

Pipelining language #477

Closed mnot closed 3 years ago

mnot commented 11 years ago

Section 6.6 of p1 states:

A server that sends a close connection option MUST initiate a lingering close of the connection after it sends the response containing close.  The server MUST NOT process any further requests received on that connection.

A client that receives a close connection option MUST cease sending requests on that connection and close the connection after reading the response message containing the close; if additional pipelined requests had been sent on the connection, the client SHOULD assume that they will not be processed by the server.

The last sentence can be interpreted one of two ways: 1) The client SHOULD assume the additional pipelined requests will NOT be processed by the server and therefore can happily re-try them knowing the server has not processed the previous ones.

2) The client SHOULD NOT assume the additional pipelined requests will be processed (which implies the client simply can not know whether the server has processed them or not).

As the client has no way of knowing whether the server may have processed them or not (e.g. the client may be talking to a proxy that has already relayed the pipelined requests to the origin and done so before the proxy was aware that it wanted to close the connection on this response) I would suggest rewording the last sentence quoted above:

OLD: the client SHOULD assume that they will not be processed by the server. NEW: the client SHOULD NOT assume that they will be processed by the server.

Reported by @mnot, migrated from https://trac.ietf.org/trac/httpbis/ticket/477

mnot commented 11 years ago

From 2258:

(editorial) #477 : tis better to SHOULD NOT assume than to assume not.