Usually, when a POST request is parsed, one either expects a Content-Length or a Transfer-Encoding: chunked in the headers. When none of these present themselves, the server can respond with "411 Length Required".
The C-based parser parses the request (sometimes it breaks with "not parse data entirely" error) enough for me to identify the error and respond (it also considers the message complete before parsing the incoming body).
The Java parser just breaks with an "invalid method" exception:
HTTP::Parser::Error: invalid method
<< at org/ruby_http_parser/RubyHttpParser.java:372
Below you'll find a script which demonstrates the issue. I don't know if you consider one or the other more valid (I stand for the first one), but they both need to have the same behaviour.
Usually, when a POST request is parsed, one either expects a Content-Length or a Transfer-Encoding: chunked in the headers. When none of these present themselves, the server can respond with "411 Length Required". The C-based parser parses the request (sometimes it breaks with "not parse data entirely" error) enough for me to identify the error and respond (it also considers the message complete before parsing the incoming body). The Java parser just breaks with an "invalid method" exception:
Below you'll find a script which demonstrates the issue. I don't know if you consider one or the other more valid (I stand for the first one), but they both need to have the same behaviour.