2010-11-22 51 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服務器支持保持連接,大多數瀏覽器也會打開多個連接。所以,不要只找到一個不同的端口來結束你的評估。