【发布时间】:2013-10-12 07:37:52
【问题描述】:
我需要用 POST 方法写一个完整的 http 请求包。 POST 要求接受 Content-Length 字段,但在我写完之前我不知道数据包的大小。我可以在 http 请求的末尾添加 Content-Length 字段吗?并且 Content-Length 字段大小需要包含在长度计数中?
【问题讨论】:
标签: http http-post http-content-length
我需要用 POST 方法写一个完整的 http 请求包。 POST 要求接受 Content-Length 字段,但在我写完之前我不知道数据包的大小。我可以在 http 请求的末尾添加 Content-Length 字段吗?并且 Content-Length 字段大小需要包含在长度计数中?
【问题讨论】:
标签: http http-post http-content-length
不,标题字段排在第一位。您要么需要缓冲,要么使用 Transfer-Encoding: chunked(在这种情况下您不需要 Content-Length)。
【讨论】:
也许我没有完全理解您的问题,但是为什么您需要将数据包大小放在 Content-Length 字段中? Content-Length 包含消息正文(发布内容)的大小,而不是数据包大小。
根据specs:
Content-Length entity-header 字段表示 entity-body 的大小
【讨论】:
如果您不知道响应的确切大小,则无需指定内容长度。
还取决于您使用的 HTTP 版本。
对于 v1.0,您可以发送数据直到到达流的末尾,然后您可以简单地关闭连接,这是 HTTP 1.0 的正常行为。
【讨论】: