【问题标题】:Are HTTP keep-alive connections possible without content-length headers?如果没有内容长度标头,HTTP 保持活动连接是否可行?
【发布时间】:2018-08-21 16:54:57
【问题描述】:

我了解在 HTTP 1.0 中,the content of a response is terminated by closing the connection。

在 HTTP 1.1 中,引入了keep-alive connections,在单个 TCP 连接中启用多个请求和响应。

当通过同一连接发送多条消息时,需要一种机制来定义一条消息在哪里结束,下一条消息从哪里开始。

通过测试,我发现当我在响应中设置content-length header 时这有效。通过知道内容长度,客户端就可以知道内容何时被完全接收并可以解析下一个响应。

我的问题是:

是否可以在不设置 content-length 标头的情况下在 keep-alive 连接中发送多个响应?

如果是,怎么做?

澄清一下:我正在考虑在开始将响应发送到客户端时不知道响应长度的情况,我想知道关闭连接是否是实现该响应的唯一方法。

【问题讨论】:

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


    【解决方案1】:

    Transfer-Encoding 标头是我正在寻找的。​​p>

    通过将传输编码设置为chunked,可以省略 Content-Length 标头。

    在分块传输编码中,一条消息可以按长度已知的多个块发送。为了终止消息,发送一个长度为零的块。

    这使得有可能保持连接并在开始发送时仍然发送长度未知的消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-23
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      相关资源
      最近更新 更多