P1: Content-Length SHOULD be sent

Currently, p1 says:

> When a message is allowed to contain a message body, does not have a Transfer-Encoding header field, and has a payload body length that is known to the sender before the message header section has been sent, the sender should send a Content-Length header field to indicate the length of the payload body as a decimal number of octets.

This unqualified SHOULD leads people to convoluted readings of the spec where Content-Length is required to be sent on a GET request:
  https://github.com/kennethreitz/requests/issues/223#issuecomment-10745532

Proposal:

> When a message is allowed to contain a body, does not have a Transfer-Encoding header field, and has a payload body length that is known to the sender before the message header section has been sent, the sender should send a Content-Length header field to indicate the length of the payload body as a decimal number of octets, unless the message is a request and the payload length is zero (in which case the Content-Length header MAY be sent). 


--
Mark Nottingham   http://www.mnot.net/

Received on Tuesday, 27 November 2012 05:21:51 UTC