Since the Apache server can not know if CGI requires C-L, I conclude that CGI scripts are broken if they require C-L and do not return 411 Length Required when the CGI/1.1 CONTENT_LENGTH environment variable is not present. It's too bad that CGI.pm and cgi-lib.pl are both broken in this respect. Fixing them would be simple and that would take care of the vast majority of legacy apps.
CGI was defined in 1993. HTTP/1.0 in 1993-95. HTTP/1.1 in 1995-97. I think it is far-fetched to believe that CGI scripts are broken because they don't understand a feature introduced three years after CGI was done. I certainly didn't expect CGI scripts to change when I was editing HTTP.
I probably expected that someone would define a successor to CGI that was closer in alignment to HTTP, but that never happened (instead, servlets were defined as a copy of the already-obsolete CGI interface rather than something sensible like an HTTP proxy interface). *shrug*
CGI is supposed to be a simple interface for web programming. It is not supposed to be a fast interface, a robust interface, or a long-term interface -- just a simple one that works on multiple independent web server implementations.
....Roy
