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 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) 4. While debugging the APR Connector I see that request.getProtocol is invoked and the message bytes contain the chomped XML with a trailing GET request. This leads to a 505. I read several resources as well as bug reports in HTTPd, Tomcat and JBoss spread over the last couple of years. The RFC 7231 [1] says: Requirements for clients: o A client that sends a 100-continue expectation is not required to wait for any specific length of time; such a client MAY proceed to send the message body even if it has not yet received a response. Furthermore, since 100 (Continue) responses cannot be sent through an HTTP/1.0 intermediary, such a client SHOULD NOT wait for an indefinite period before sending the message body. The statement sheds some light on the issue but does not fully answer the question. As far as I understand the client has received the final status (401) from the server but did not evaluate this. In my opinion, the client seems to be broken. The resources suggested to disable the header which we did and it did work indeed, the strange thing is that the client in .NET should wait for 350 ms before it fires the body which it doesn't. Can somebody tell me who is misbehaving against the RFC? Is disabling "Expect: 100-continue" the way to go? I am pretty fine with that if Tomcat's behavior is RFC-compliant. These are my resources: https://social.msdn.microsoft.com/Forums/en-US/5c576a2d-2f13-485c-8ada-b4c3ee127d3c/http-protocol-errors-when-combining-webclient-uploads-and-digest-authentication?forum=ncl https://issues.apache.org/bugzilla/show_bug.cgi?id=47087 http://blogs.msdn.com/b/fiddler/archive/2011/11/05/http-expect-continue-delays-transmitting-post-bodies-by-up-to-350-milliseconds.aspx Regards, Michael [1] http://tools.ietf.org/html/rfc7231#section-5.1.1 PS: If someone of the project members is interested in the Wirshark pcap file, I'll be happy to send you that to your @apache.org email address. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org