当前位置: 首页 > 知识库问答 >
问题:

在没有内容长度标头的情况下,HTTP保持活力连接是否可行?

杨宏儒
2023-03-14

我知道在HTTP 1.0中,响应的内容通过关闭连接来终止。

在HTTP 1.1中,引入了保持活动连接,在单个TCP连接中支持多个请求和响应。

当通过同一连接发送多条消息时,需要有一种机制来定义一条消息的结束位置和下一条消息的开始位置。

通过测试,我发现当我在响应中设置内容长度标题时,这是有效的。通过了解内容长度,客户机知道内容何时被完全接收,并可以解析下一个响应。

我的问题是:

是否可以在不设置内容长度标题的情况下在保持活动连接中发送多个响应?

如果是,如何?

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

共有1个答案

郎嘉树
2023-03-14

传输编码头就是我要找的。

通过将传输编码设置为chunked,可以省略内容长度标题。

在分块传输编码中,消息可以分为多个已知长度的分块发送。要终止消息,将发送长度为零的区块。

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

 类似资料:
  • 我希望在客户端下载文件时向他们显示文件的大小。< br >但是HTTP头内容长度不起作用。< br >我环境如下。 阿帕奇 2.2 mod_deflate 轨道3.2 下载文件位于rails项目公用文件夹中。 当我下载它时,响应标头是这个。 接受范围字节 访问控制允许头...源,x 请求,内容类型 访问控制允许甲基...放置、获取、发布、删除、选项 访问控制-允许-原始...http://*.co

  • HTTP/1.1服务器默认为连接头的保持活动设置。那么,为什么大多数浏览器在其请求中都包含Connection:Keep-Alive,即使它们知道目标服务器支持HTTP/1.1?

  • 我面临的问题在我的泽西岛邮政API当我没有发送内容长度从邮递员。 我们知道,默认情况下,postman发送的是content-length(隐藏的头),但我不发送。 2020-12-09 14:51:36.951错误27356---[nio-8082-exec-1]O.A.C.C.C.[.[.[/].[dispatcherServlet]:servlet[dispatcherServlet]的se

  • 使用简单的按预期设置所有标头。 什么样的问题可能导致这种行为?

  • 我的HTTP头有问题。我需要发送一个带有空正文和标题“content-length:0”的post-request。但这似乎是不可能的,因为我有一个例外: --org.apache.http.ProtocolException:内容长度头已存在-- 编辑: 用@Beno Arakelyan的答案解决了这个问题。

  • 是否可以在没有实体的情况下使用JpaRepository?在这种情况下,将其替换为DTO。 如下示例所示 这种情况有替代方案吗? 注意:DTO已经映射,但我不想创建视图来将此DTO转换为实体。 我已经验证了这个主题,但没有重大进展,请使用无实体的JpaRepository交互样式 我在试这个 接口- 公共接口BffDTOInterface2{ } 我有这个错误