2010-11-22 65 views
13

我知道在HTTP 1.1中默认HTTP保持活动状态,但我想找到一种方法来确认它实际上正在工作。如何测试HTTP保持活着实际上正在工作

有谁知道一个简单的方法来从Web浏览器测试(EG如何使wireshark有意义)。我知道我需要通过同一个TCP连接寻找多个HTTP请求,但我不知道如何以wireshark或其他任何方式来确认。

谢谢!

回答

4

如果您使用的是Windows Vista或更高版本,则可以使用资源管理器。网络选项卡将列出所有打开的TCP连接及其启动的过程。打开带有一个选项卡的浏览器,浏览到您的页面并进行测试。

+0

谢谢你。我没有资源管理器(我认为这是服务器),但我使用sysinternals的TCPView。它有帮助(但仍然令人困惑!!!) – sub 2010-11-22 04:14:36

+0

你也可以运行'netstat'。 – Brad 2010-11-22 04:27:11

16

由于Ron Garrity said on ServerFault,你可以使用Curl这样的:

curl -Iv http://www.aptivate.org 2>&1 | grep -i 'connection #0' 

而且它这两条线如果保持活动正在输出:

* Connection #0 to host www.aptivate.org left intact 
* Closing connection #0 

如果保活不工作,那么它只是输出这一行:

* Closing connection #0 
0

首先,尝试捕获流量到targ等网站在Wireshark的,它限制在您需要什么样的过滤器:

tcp port 80 and host targetwebsite.com 

然后加载该页面在浏览器或您有任何工具获取它。如果目标网页刷新自身或其中的某个值,请将其保持打开状态,直到您至少有一次更改为止。

现在你有足够的数据,你可以在Wireshark中停止捕获程序。

你应该看到几十条记录,它们的协议应该是TCP或HTTP。为了快速简单检查,您不需要TCP记录。所以,让我们通过应用另一个过滤器来删除它在窗口顶部有一个“过滤器”字段。在那里键入http,wireshark将隐藏除HTTP协议以外的所有记录。

现在选择一条记录并查看下一级别的详细信息,您可以在第二个方框中找到所有记录。为了确保你在正确的位置,第一行以“Frame XYZ”开头。第四行以“传输控制协议”开始。在“SRC端口”和“DST端口:”之后查找端口号。根据记录,这些号码中的一个属于网络服务器(通常为80),另一个号码显示端口号。

现在检查几个不同的GET记录。要知道请求是否为GET记录,请选中Info列。如果您的端口号码多次使用,则所有这些请求都是通过HTTP Keepalive进行的。

请记住,即使Web服务器支持保持连接,大多数浏览器也会打开多个连接。所以,不要只找到一个不同的端口来结束你的评估。