有些時候,例如DNS運作不正常,或者HTTP伺服器傳來的資料有問題,或者我們想避開Redirect,也有可能是手邊沒有合適的瀏覽器,在這些情況下,我們想要透過簡單的方式來測試一下HTTP伺服器
我們可以使用Telnet來達成,選擇它的原因是只要有網路功能的作業系統通常都會支援這個指令,有時我也會拿它來測試SMTP發送郵件或者測試POP3郵件操作
今天我們就先說明如何測試HTTP伺服器
我的環境是Windows 7,預設好像不會安裝Telnet用戶端,所以或出現"不是內部或外部命令、可執行的程式或批次檔。"的錯誤
沒關係,我們到"控制台"=>"程式集"=>"開啟或關閉 Windows 功能"
接著勾選"Telnet 用戶端",確定以安裝
這時再次輸入telnet就會進到以下的畫面,提示符號改為Microsoft Telnet>,值得注意的是逸出字元"Ctrl+]",使用時機下面會說明
首先執行set localecho打開本機回應,本機回應預設是不開的,打開有個好處是我們可以知道我們輸入是否正確,本文也才能向您說明打了甚麼字
接著我們開啟一個連結,open hostname [port],這裡要稍微注意一下,雖然狀態還是"正連線到 127.0.0.1...",但我們注意到左上角其實已經出現游標,也就是連上了遠方主機
IIS要求至少輸入以下兩行,GET 與 HTTP 限制大寫
GET / HTTP/1.1
HOST: 127.0.0.1
接著再送出兩行換行字元通知伺服器處理要求
第一行的意思使用HTTP/1.1以GET取得/預設內容
第二行的意義是指定主機,所以當同一個IP同一個Port上若有兩個以上使用名稱區隔的虛擬主機時,便可以此分辨是要取得哪一個虛擬主機
打開本機回應,畫面會很亂 :(,所以如果您已經熟悉了操作,那就讓本機回應保持關閉吧
更細的HTTP Request可能是這樣
GET http://127.0.01/WebApplication1/ HTTP/1.1
Accept: */*
Accept-Language: zh-TW
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; chromeframe/12.0.742.112; GTB7.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; $SVD_TXT$; .NET4.0E)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: 127.0.01
Pragma: no-cache
Cookie: ASP.NET_SessionId=ponccgea1vkturx01lywcclm
您若有興趣,可以再延伸閱讀RFC 2616
取得回應,HTTP/1.1 200 OK,同時得到要求的內容
這時候就可以使用逸出字元回到Microsoft Telnet>提示下,接著輸入"quit"回到命令提示字元
留言列表