HTTP消息的消息体(如果存在的话)用于携带请求或响应的有效载荷体。消息体与有效载荷体一致,除非应用了传输编码,如3.3.1节描述那样。
message-body = *OCTET
消息中允许消息正文的规则因请求和响应而不同。头字段中的Content-Length或Transfer-Encoding是请求中消息体存在的信号。请求消息的构成与方法语义是独立的,即使方法没有定义任何消息体的使用。
响应中消息正文的存在取决于响应的请求方法和响应状态码(3.1.2节)。HEAD请求方法(RFC7231中4.3.2节)的响应从不包括消息体,因为向关联的响应头字段(例如Transfer-Encoding,Content-Length等)(如果存在的话)仅表示如果请求方法是GET(RFC7231中4.3.1节)时它们的值。对CONNECT请求方法(RFC7231的4.3.6节)的2xx(成功)响应切换到隧道模式而不是消息体。所有的1xx(信息),204(无内容)以及304(未更改)响应都不包含消息体。所有其他的响应都包含消息体,虽然消息体可能是零长度。