close

有些時候,例如DNS運作不正常,或者HTTP伺服器傳來的資料有問題,或者我們想避開Redirect,也有可能是手邊沒有合適的瀏覽器,在這些情況下,我們想要透過簡單的方式來測試一下HTTP伺服器

我們可以使用Telnet來達成,選擇它的原因是只要有網路功能的作業系統通常都會支援這個指令,有時我也會拿它來測試SMTP發送郵件或者測試POP3郵件操作

今天我們就先說明如何測試HTTP伺服器

 

我的環境是Windows 7,預設好像不會安裝Telnet用戶端,所以或出現"不是內部或外部命令、可執行的程式或批次檔。"的錯誤

20110709_001.jpg

 

沒關係,我們到"控制台"=>"程式集"=>"開啟或關閉 Windows 功能"

20110709_002.jpg

 

接著勾選"Telnet 用戶端",確定以安裝

20110709_003.jpg

 

這時再次輸入telnet就會進到以下的畫面,提示符號改為Microsoft Telnet>,值得注意的是逸出字元"Ctrl+]",使用時機下面會說明

20110709_004.jpg  

 

首先執行set localecho打開本機回應,本機回應預設是不開的,打開有個好處是我們可以知道我們輸入是否正確,本文也才能向您說明打了甚麼字

20110709_005.jpg

 

接著我們開啟一個連結,open hostname [port],這裡要稍微注意一下,雖然狀態還是"正連線到 127.0.0.1...",但我們注意到左上角其實已經出現游標,也就是連上了遠方主機

20110709_006.jpg

 

IIS要求至少輸入以下兩行,GET 與 HTTP 限制大寫

GET / HTTP/1.1
HOST: 127.0.0.1

接著再送出兩行換行字元通知伺服器處理要求

第一行的意思使用HTTP/1.1以GET取得/預設內容

第二行的意義是指定主機,所以當同一個IP同一個Port上若有兩個以上使用名稱區隔的虛擬主機時,便可以此分辨是要取得哪一個虛擬主機

打開本機回應,畫面會很亂 :(,所以如果您已經熟悉了操作,那就讓本機回應保持關閉吧


20110709_007.jpg

 

更細的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,同時得到要求的內容

20110709_008.jpg

 

這時候就可以使用逸出字元回到Microsoft Telnet>提示下,接著輸入"quit"回到命令提示字元

arrow
arrow
    文章標籤
    Windows Telnet HTTP
    全站熱搜

    慢飛 發表在 痞客邦 留言(0) 人氣()