I've added more listener proxy calls from NonFinalResponseListener to the original listener to account for various situations that could potentially occur. I also added three
more tests to the harness that check for correct behavior of the client if CONTINUE 100 is expected but not sent, an error response is sent, or a timeout occurs.
It is important to note that all above mentioned changes are going to be implemented in the Jetty 7.5.x release.
According to RFC 2616, section 10, "The client SHOULD continue with its request. This interim response is used to inform the client that the initial part of the request has been received and has not yet been rejected by the server. The client SHOULD continue by sending the remainder of the request or, if the request has already been completed, ignore this response." The language of the RFC means that it is not mandatory for the client to continue with the request when CONTINUE 100 response is received.
Because Jetty 6.x is currently in maintenance mode, we do not expect to make this change in this version. Please vote for this ticket if you would want to have it fixed in a maintenance release of Jetty 6.1.x that is tentatively planned for November, 2011 timeframe.
-Michael
Michael,
I'm not sure that I like the modification to HttpParser to have a special case for the 100 response. The parser should parse entire HTTP messages and a 100 response is a valid HTTP message. It is HttpConnections job to deal with the state resulting from the parser, so it should be the one that handles 100's and I think that head of header and end of message events should still be generated.
Let me see if I can do that....