Sending 411 is HTTP/1.1 compliant. Failure to parse the chunked
encoding (and puking) would be non-compliance, but requiring a
content-length for a given resource is necessary for many reasons
(DoS and legacy system protection).
>My recollection is that some servers chose not to be completely
>CGI/1.1 compliant to avoid the buffering. The 411 header was a
>way to be HTTP/1.1 compliant and indicate their rejection of
>chunked POST data.
>For example, I have heard that Apache rejects chunked POST data,
>but I have not personally verified this.
Right, the default mod_cgi distributed with Apache will respond with
411 because it assumes the CGI is dumb. The core of Apache does support
chunked reading, so one could always write a module that reads chunked,
but CGI requires a content-length before the script is execed.
A module that does limited-size buffering before handing over to the CGI
script has been on my Apache to-do list for a long time (over a year).