I can only speak with anything resembling authority on the
CGI aspects. I find your questions a bit contradictory,
but here's my take on them:
> 1. MAY a server discard the message body of a POST request with no
> Content-Length?
[Opinion] No. The message-body is an integral part of
the request, and cannot be silently ignored. The server
should return a 411 (Length Required) instead.
> 2. MAY a server discard the message body of a POST request with no
> Content-Length when the destination resource is CGI?
[Opinion] Same answer as for [1].
> 3. MUST a server buffer the message body of a POST request with
> Transfer-Encoding: chunked and generate a CONTENT_LENGTH when the
> destination resource is CGI?
Yes, if it accepts the request at all. The CONTENT_LENGTH
metavariable is a MUST for CGI compliance.
> 4. SHOULD a server buffer the message body of a POST request with
> Transfer-Encoding: chunked and generate a CONTENT_LENGTH when the
> destination resource is CGI?
No, it's a MUST.
> What if the destination resource is a servlet?
I don't think this applies to CGI. I don't know what
interface is used by servers to communicate with servlets.
If they use CGI, or a particular servlet implementation
does, then they need to abide by the CGI requirements.
> Should this information be written in a spec or informational something
> somewhere?
I think that specs that define how applications should juggle
different protocols are a waste of time (MHO). This is more likely
a HOWTO or FAQ sort of thing, explaining how related aspects
should be handled by implementors.
Of course, if you want to write something up for the CGI-NG
draft, feel free.. :-)
-- #ken P-)}Ken Coar <http://Web.Golux.Com/coar/> Apache Group member <http://www.apache.org/> "Apache Server for Dummies" <http://Web.Golux.Com/coar/ASFD/>