So I'm asking if it's necessary to "negotiate" the absence/presence of the
charset parameter, because I'm worried that older clients may not be able
to handle content-type headers that include the charset parameter.
There is already a means for such a negotiation; namely, the use of
a Simple-Request vs. a Full-Request. A Full-Request request that its
sender be capable of interpreting at least HTTP/1.0. Since the CHARSET
parameter on the content media type is specified by HTTP/1.0, then
the use of a Full-Request says that you must, at a minimum, be able to
parse such this parameter. [Note that this doesn't mean you have to
either interpret or make use of the parameter.]
If a client is sending a Full-Request and cannot parse the parameter, then
it is broken and should be replaced.
Regards,
Glenn