0

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

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

关于 Response 中的 content-length,规范在 rfc2616 中描述。

Content-Length entity-header 字段指示发送给接收者的实体主体的大小,以十进制的八进制数表示,或者在 HEAD 方法的情况下,将发送的实体主体的大小具有请求是 GET。

虽然,我找不到有关请求标头的规范..

4

1 回答 1

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:身份验证

特别是 RFC7230 的第 3.3.2 节

当请求包含有效负载主体且未设置传输编码标头时,应发送内容长度。

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

发送 0 的 Content-Length 表示没有正文没有问题,但这意味着没有 Content-Length 或 Transfer-Encoding。

这些只是规格,因此您的里程可能会因不同的 http 实现而异。

于 2015-10-08T01:55:35.700 回答