We recently noticed a problem where some user agents repeated the same POST request without actually physically launching its user twice.
After further study, we noticed that this only happens when the request passes through our load balancer, and when the server takes a long time to process the request. The packet capture session ultimately showed that the load balancer disconnects the connection after a 5-minute timeout by sending a TCP Reset to the client; however, the client automatically resubmitted the request without user intervention.
We observed this behavior in the Apache HTTP client for Java, Firefox, and IE 8. (I cannot install other browsers for testing.) This makes me think that this behavior is part of the HTTP standard, but it is not so simple for Google.
Also, it seems that this only happens if the first request is sent over a supported TCP connection.
billc.cn
source share