title: Why does the user agent resubmit a request after server does a TCP reset?
body: <p>We've recently noticed a problem where some user agents would repeat the same POST request without the user actually physically triggering it twice.</p>
  
  <p>After further study, we noticed this only happens when the request goes through our load balancer and when the server took a long time to process the request. A packet capture session eventually revealed that the load balancer drops 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.</p>
  
  <p>We observed this behavior in Apache HTTP client for Java, Firefox and IE 8. (I cannot install other browsers to test.) This makes me think this behavior is part of the HTTP standard, but this is not very easy to google.</p>
  
  <p>Also, it seems this only happen if the first request is submitted via a kept-alive TCP connection.</p>