<p>虽然在规范中没有明确的概述,但是可以做出一些推断。<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.2.1" rel="nofollow">Section 7.2.1</a>状态</p>
<blockquote>
<p>Any HTTP/1.1 message containing an
entity-body SHOULD include a
Content-Type header field defining the
media type of that body.</p>
</blockquote>
<p>这很明显,也很有道理。鉴于此,我们可以查看一下<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9" rel="nofollow">Section 9</a>(方法定义),看看哪些定义提到它们可能在请求主体中有一个实体。提到他们三个:</p>
<h3>选项</h3>
<blockquote>
<p>If the OPTIONS request includes an
entity-body (as indicated by the
presence of Content-Length or
Transfer-Encoding)...</p>
</blockquote>
<h3>后</h3>
<blockquote>
<p>...used to request that the origin
server accept the entity enclosed in
the request...</p>
</blockquote>
<h3>放置</h3>
<blockquote>
<p>...requests that the enclosed entity
be stored under the supplied
Request-URI</p>
</blockquote>
<p>有一种方法特别禁止实体TRACE</b>:</p>
<blockquote>
<p>A TRACE request MUST NOT include an
entity.</p>
</blockquote>
<p>实际上,您可以发送任何在主体中包含实体和内容类型头的方法(TRACE除外)。但是,根据规范,除非是上面三种方法中的一种,否则我不希望服务器使用它。在</p>
<hr/>
<p>我还想说,您使用的响应HTTP状态415的软件违反了规范。在</p>
<p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3" rel="nofollow">Section 4.3</a>说:</p>
<blockquote>
<p>...if the request method does not
include defined semantics for an
entity-body, then the message-body
SHOULD be ignored when handling the
request.</p>
</blockquote>
<p>由于规范不包括带有GET请求的实体体的定义语义,服务器应该忽略它。在</p>
<p>另外,如果请求中没有提供实体,并且内容长度为零(假设未设置传输编码标头且不是“标识”),则服务器不应尝试使用实体,而不管请求方法或是否存在内容类型标头。这可以通过确定<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4" rel="nofollow">Section 4.4</a>中描述的消息长度的优先顺序进行备份。在</p>