【问题标题】:Http POST packet and Content-Length field issueHttp POST 数据包和 Content-Length 字段问题
【发布时间】:2013-10-12 07:37:52
【问题描述】:

我需要用 POST 方法写一个完整的 http 请求包。 POST 要求接受 Content-Length 字段,但在我写完之前我不知道数据包的大小。我可以在 http 请求的末尾添加 Content-Length 字段吗?并且 Content-Length 字段大小需要包含在长度计数中?

【问题讨论】:

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


    【解决方案1】:

    不,标题字段排在第一位。您要么需要缓冲,要么使用 Transfer-Encoding: chunked(在这种情况下您不需要 Content-Length)。

    【讨论】:

      【解决方案2】:

      也许我没有完全理解您的问题,但是为什么您需要将数据包大小放在 Content-Length 字段中? Content-Length 包含消息正文(发布内容)的大小,而不是数据包大小。

      根据specs

      Content-Length entity-header 字段表示 entity-body 的大小

      【讨论】:

        【解决方案3】:

        如果您不知道响应的确切大小,则无需指定内容长度。

        还取决于您使用的 HTTP 版本。

        对于 v1.0,您可以发送数据直到到达流的末尾,然后您可以简单地关闭连接,这是 HTTP 1.0 的正常行为。

        【讨论】:

          猜你喜欢
          • 2011-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-10
          • 1970-01-01
          • 2016-08-21
          • 1970-01-01
          相关资源
          最近更新 更多