Hi Mark, > On 06/12/2014 18:48, Christopher Schultz wrote: > > Michael, > > > > On 12/4/14 4:27 AM, Osipov, Michael wrote: > >> Hi folks, > > > >> we are experiencing a popular issue with MS .NET clients sending > >> "Expect: 100-continue" and Tomcat failing with HTTP 505. We use > >> Apache Tomcat 6.0.41 with APR connector on a corporate network. > > > >> The request look like this in Wireshark: > > > >> 1. Client sends empty request with one TCP packet > > > > What do you mean empty? Is there a request line? Headers? Is there a > > \r\n\r\n indicating the end of the headers? Is the "Expect" header in > > this packet? > > > >> 2. Tomcat responds with 401 within 20 to 30 ms 3. Client sends > >> another TCP packet with the request body now (401 has been > >> ignored) > > > > So the client sends "Expect: 100" and then ignores the non-100 > > response? Sounds like the .NET client is braindead. > > To be fair, it could be a timing issue. The client has to guess how long > to wait before sending the body if it doesn't get a response.
I don't think so because request take only a few tens of milliseconds and by default the .NET client waits for upto 350 ms according to MS' documentation. > Given the timing issues, the only thing the server can safely do for > non-200 responses is send the response, close the connection and > optionally swallow any request body (some clients don't even try to read > the response until the body has been sent). Who should close the connection? The connector or my authenticator by "Connection: close"? Michael