哪种方法需要内容长度字段?

时间:2015-10-08 01:32:12

标签: http content-length http-content-length

POST或PUT方法需要请求标头字段中的内容长度。

另一种方法(GET,PATCH,DELETE,OPTIONS,CONNECT,TRACE,HEADER)是否还需要内容长度?

关于Response中的内容长度,规范在rfc2616中描述。

  

Content-Length entity-header字段指示实体主体的大小,以十进制数量的OCTET发送给接收者,或者在HEAD方法的情况下,指示实体主体的大小。如果请求是GET,则已发送。

虽然,我找不到关于请求标题的规范..

1 个答案:

答案 0 :(得分:1)

HTTP规范已从RFC2616更新。请参阅以下内容:

  • RFC7230 - HTTP / 1.1:消息语法和路由
  • RFC7231 - HTTP / 1.1:语义和内容
  • RFC7232 - HTTP / 1.1:条件请求
  • RFC7233 - HTTP / 1.1:范围请求
  • RFC7234 - HTTP / 1.1:缓存
  • RFC7235 - HTTP / 1.1:身份验证

Specifically Section 3.3.2 of RFC7230

当请求包含有效负载主体并且未设置Transfer-Encoding标头时,应该发送内容长度。

因此,即使POST或PUT只需要在有一个长度的主体时发送Content-Length,这通常就是由于操作而发生POST和PUT的情况。

发送Content-Length为0表示没有正文没有问题,但是没有Content-Length或Transfer-Encoding就暗示了这一点。

这些只是规格,所以你的里程可能因不同的http实施而有所不同。