gpt4 book ai didi

http - 每个 HTTP 请求都使用一个单独的 TCP 连接

转载 作者:可可西里 更新时间:2023-11-01 02:31:47 24 4
gpt4 key购买 nike

观察:

  • 我的网络应用程序在 JBoss 中运行。

  • 由于图像等原因,每次用户点击都会生成 >5 个 HTTP 请求。

  • 在服务器上运行 netstat 显示为每个 HTTP 请求打开一个新的 TCP 连接(基本上我是在查看来自端口 80 上的客户端 IP 的 TCP 连接总数)。

事实:

  • JBoss HTTP 协议(protocol)设置为 1.1。

  • 我已经检查过 FF、IE9 和 Chrome - 所有浏览器都这样做。

  • 我有两个测试环境 - 一个在 Windows7 上运行,另一个在 CentOS 上运行。我在两者中看到相同的行为。

我想要完成的事情

  • 持久的 TCP 连接,因为希望这将 a) 增强用户体验并 b) 减少服务器上的负载

此时,我不确定应该在问题中附加什么代码、配置详细信息或日志,但如果您让我知道,我会提供。感谢任何形式的帮助。

附注从标题 TCP connection is not reused for HTTP requests with HttpURLConnection 看来,该线程似乎很有前途。 , 但它主要与客户端打交道。

最佳答案

我想我已经找到了解决办法。谢谢指点和建议。他们真的很有帮助。

第 1 部分:我使用 Firefox 中的 HttpFox 插件来查看响应 header 。正如 Philippe 怀疑的那样,Connection header 的值为“close”。

第 2 部分:在我自己的过滤器中添加一行代码来更改响应 header 并没有帮助。所以我下载了 jbossWebService.jar 并将其添加到 WEB-INF/lib 目录中,以便使用 org.jboss.web.tomcat.filters.ReplyHeaderFilter 类。 (在 JBoss 7 之前,显然这个包曾经默认包含在 JBoss 中。)在我的 web.xml 中添加了以下内容:

<filter>

<filter-name>CommonHeadersFilter</filter-name>

<filter-class>

org.jboss.web.tomcat.filters.ReplyHeaderFilter</filter-class>

<init-param>

<param-name>Connection</param-name>

<param-value>keep-alive</param-value>

</init-param>

</filter>

这成功了(好吧,差不多)。现在,浏览器的第一次“点击”会生成大约 4 个 TCP 连接 - 不确定该数字的原因,因为每次点击都会生成 >=7 个 http 请求。但所有后续点击,如果在 ttl 周期(15 秒)内执行,则不会生成额外的 TCP 连接。我想,正如 Philippe 所建议的那样,进行更彻底的调查会揭示一些东西。但在这一点上,我必须继续前进。所以,暂时我会把这个问题标记为已回答。如果以后需要,我会重新打开它。

关于http - 每个 HTTP 请求都使用一个单独的 TCP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10917527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com