Pra*_*rya 6 jboss tcp http persistent
观察结果:
我的Web应用程序正在JBoss中运行。
由于图像等原因,每一次用户单击都会生成> 5个HTTP请求。
在服务器上运行netstat会显示为每个单个HTTP请求打开了一个新的TCP连接(基本上,我正在查看来自端口80上客户端IP的TCP连接总数)。
事实:
JBoss HTTP协议设置为1.1。
我已经检查过FF,IE9和Chrome-所有浏览器都执行相同的操作。
我有两个测试环境-一个在Windows7上运行,另一个在CentOS上运行。我在两者中看到相同的行为。
我要完成的工作
在这一点上,我不确定该问题应该附加什么代码,配置详细信息或日志,但是如果您让我知道,我会提供。任何帮助都将受到赞赏。
ps从标题来看,该线程似乎很有希望,TCP连接不会通过HttpURLConnection再次用于HTTP请求,但它主要处理客户端。
我想我已经找到了解决这个问题的方法。感谢您的指点和建议。他们真的很有帮助。
第 1 部分:我使用 Firefox 中的 HttpFox 插件来查看响应标头。由于 Philippe 怀疑 Connection 标头的值为“close”。
第 2 部分:在我自己的过滤器中添加一行代码来更改响应标头没有帮助。因此,我下载了 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>
Run Code Online (Sandbox Code Playgroud)
这成功了(好吧,几乎)。现在,浏览器的第一次“单击”会生成大约 4 个 TCP 连接 - 不确定该数字的原因,因为每次单击都会生成 >=7 个 http 请求。但所有后续点击,如果在 ttl 周期(15 秒)内执行,则不会生成额外的 TCP 连接。我想,正如菲利普建议的那样,进行更彻底的调查会揭示一些东西。但此时我必须继续前进。因此,我暂时将这个问题标记为已回答。如果以后需要的话我会重新打开它。
| 归档时间: |
|
| 查看次数: |
4636 次 |
| 最近记录: |