Regarding keepalive and idempotency

Fasih faskiri.devel at
Sat Jan 4 11:44:51 UTC 2014

Hi guys

Hello guys

Nginx keepalive seems to retry automatically on failure. However for
non-idempotent requests, it is incorrect by RFC to retry automatically
because the server could have changed its state before nginx detected the

Is this a bug that would be fixed or did I not get it right?

Relevant RFC section

A client, server, or proxy MAY close the transport connection at any time.
For example, a client might have started to send a new request at the same
time that the server has decided to close the "idle" connection. From the
server's point of view, the connection is being closed while it was idle,
but from the client's point of view, a request is in progress.

This means that clients, servers, and proxies MUST be able to recover from
asynchronous close events. Client software SHOULD reopen the transport
connection and retransmit the aborted sequence of requests without user
interaction so long as the request sequence is idempotent (see section
9.1.2). Non-idempotent methods or sequences MUST NOT be automatically
retried, although user agents MAY offer a human operator the choice of
retrying the request(s). Confirmation by user-agent software with semantic
understanding of the application MAY substitute for user confirmation. The
automatic retry SHOULD NOT be repeated if the second sequence of requests

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx-devel mailing list