HttpWatch是老牌的網(wǎng)絡(luò)嗅探抓包工具,專業(yè)版售價(jià)高達(dá)249美刀。不論是網(wǎng)頁(yè)開(kāi)發(fā)還是客戶端開(kāi)發(fā)經(jīng)常都需要進(jìn)行抓包,HttpWatch就是一款專業(yè)的抓包利器,下面安下小編就來(lái)教大家怎么用HttpWatch。
HttpWatch安裝與開(kāi)啟
1.下載HttpWatch Pro,將專業(yè)版的許可文件.lic和安裝程序置于同一文件夾。運(yùn)行安裝程序,點(diǎn)擊【Next】完成安裝。
2.打開(kāi)IE瀏覽器,建議使用最新的IE11瀏覽器。默認(rèn)HttpWatch已經(jīng)開(kāi)啟并顯示在頁(yè)面下方,如果關(guān)掉了可以使用快捷鍵【Shift+F2】開(kāi)啟或者【菜單欄->查看->瀏覽器欄->HttpWatch Professional】。

HttpWatch實(shí)例講解
下面小編以登錄163郵箱mail.163.com例子講解HttpWatch。
點(diǎn)擊“Record”后,在IE打開(kāi)需要錄制的網(wǎng)址,mail.163.com,輸入用戶名,密碼后完成登錄操作。
提示:右鍵點(diǎn)擊圖片選擇【在新標(biāo)簽頁(yè)中打開(kāi)】可查看清晰大圖。

1.3.1 Overview(概要)
表示選定某個(gè)信息顯示其概要信息

如上圖紅框所示:
URL: http://mimg.163.com/external/closea_d.js
Result:200
請(qǐng)求的URL是http://mimg.163.com/external/closea_d.js ,返回的Htpp狀態(tài)代碼結(jié)果200,表示成功;
Resync URLBrowser requested refresh if changed - http://mimg.163.com/external/closea_d.js
瀏覽器請(qǐng)求的URL
Started At2008-Jan-04 09:21:09.422 (local time)
請(qǐng)求開(kāi)始時(shí)間(實(shí)際記錄的是本機(jī)的時(shí)間)
ConnectConnect to IP address '218.107.55.86'
請(qǐng)求的網(wǎng)址的IP地址
Http RequestUnconditional request sent for http://mimg.163.com/external/closea_d.js
Http請(qǐng)求,當(dāng)瀏覽器向Web服務(wù)器發(fā)出請(qǐng)求時(shí),它向服務(wù)器傳遞了一個(gè)數(shù)據(jù)塊,也就是請(qǐng)求信息
Http ResponseHeaders and content returned
Http響應(yīng),當(dāng)瀏覽器接受到web服務(wù)器返回的信息時(shí)
2.3.2 Header(報(bào)頭)
表示從Web服務(wù)器發(fā)送和接受的報(bào)頭信息;
http://g1a90.mail.163.com/a/p/main.htm?sid=UBDCcOJJDknBulMFzSJJipPzfROMNqHO

如上圖紅框所示:
Http請(qǐng)求頭發(fā)送信息
Headers Sentvalue
Request-LineGET /external/closea_d.js HTTP/1.1
以上代碼中“GET”代表請(qǐng)求方法,“closea_d.js”表示URI,“HTTP/1.1代表協(xié)議和協(xié)議的版本。
Accept**表示所有
Accept-Encodinggzip, deflate
Accept-Encoding表明了瀏覽器可接受的除了純文本之外的內(nèi)容編碼的類型,比如gzip壓縮還是deflate壓縮內(nèi)容。
Accept-Languagezh-cn
表示能夠接受的返回?cái)?shù)據(jù)的語(yǔ)言
ConnectionKeep-Alive
保持Tcp請(qǐng)求連接
備注:在HTTP工作開(kāi)始之前,Web瀏覽器首先要通過(guò)網(wǎng)絡(luò)與Web服務(wù)器建立連接,該連接是通過(guò)TCP來(lái)完成的,該協(xié)議與IP協(xié)議共同構(gòu)建Internet,即著名的TCP/IP協(xié)議族,因此Internet又被稱作是TCP/IP網(wǎng)絡(luò)。HTTP是比TCP更高層次的應(yīng)用層協(xié)議,根據(jù)規(guī)則,只有低層協(xié)議建立之后才能,才能進(jìn)行更層協(xié)議的連接,因此,首先要建立TCP連接,一般TCP連接的端口號(hào)是80
Cookievjuids=-1b9063da8.1173d33f879.0.9aab8b85a459d; vjlast=1199406314; _ntes_nnid=a1e69963f40453af8a9ad171cc4cd8da,0|tech|; NTES_UFC=3000000100000000000000000000000000000000000000000000000000000000; Province=021;
City=021; ntes_mail_firstpage=normal; NTES_SESS=68LUOUH9ewcCBFyN5OXZ_0qf._
IOMCkFscaGYrooXpjtVF7r8Vx7jAzg7HGdWo00GQEn1ZmrZcX7FMAXnb052r8XOFZZYk.hN;
NETEASE_SSN=mayingbao2002; NETEASE_ADV=11&23&1199409658752;
Coremail=VDeAMrrrDFaTa%XCVwJiXXsRLSLkbLhZXXZGqPJkEXFKNt
Cookie沒(méi)什么說(shuō)的就是客戶端記錄相關(guān)信息
Hostmimg.163.com
請(qǐng)求連接的主機(jī)名稱’
Referer Http://g1a114.mail.163.com/a/p/main.htm?sid=XCVwJiXXsRLSLkbLhZXXZGqPJkEXFKNt
包含一個(gè)URL,用戶從該URL代表的頁(yè)面出發(fā)訪問(wèn)當(dāng)前請(qǐng)求的頁(yè)面
User-AgentMozilla/4.0 (compatible; MSIE 6.0; windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
客戶端標(biāo)識(shí)瀏覽器類型
Http請(qǐng)求頭返回信息
Headers ReceivedValue
Status-LineHttp/1.0200 ok
表示Http服務(wù)端響應(yīng)返回200
Accept-Rangesbytes
Http請(qǐng)求范圍的度量單位
Age117
表示Http接受到請(qǐng)求操作響應(yīng)后的緩存時(shí)間
Cache-Controlmax-age=3600
一個(gè)用于定義緩存指令的通用頭標(biāo)
Connectionkeep-alive
保持Tcp請(qǐng)求連接
Content-Typeapplication/x-javascript
標(biāo)明發(fā)送或者接收的實(shí)體的MIME類型
DateFri, 04 Jan 2008 01:12:26 GMT
發(fā)送HTTP消息的日期
Etag"10f470-734-b32eb00"
一種實(shí)體頭標(biāo),它向被發(fā)送的資源分派一個(gè)唯一的標(biāo)識(shí)符
ExpiresFri, 04 Jan 2008 02:12:26 GMT
指定實(shí)體的有效期
Last-ModifiedFri, 04 Jan 2008 01:01:00 GMT
指定被請(qǐng)求資源上次被修改的日期和時(shí)間
ServerApache
一種標(biāo)明Web服務(wù)器軟件及其版本號(hào)的頭標(biāo)
X-CacheHIT from mimg68.nets.com
表示你的httprequest是由proxyserver回的
3.3.3 Cookies
顯示Cookies信息

如上圖所示City=021,其實(shí)是我163郵箱中設(shè)置城市信息值,在Cookies中記錄為021(代表上海這個(gè)城市)

備注:
什么是cookie?Cookie是一種在客戶端保持HTTP狀態(tài)信息的技術(shù),Cookie是在瀏覽器訪問(wèn)WEB服務(wù)器的某個(gè)資源時(shí),由WEB服務(wù)器在HTTP響應(yīng)消息頭中附帶傳送給瀏覽器的一片數(shù)據(jù),WEB服務(wù)器傳送給各個(gè)客戶端瀏覽器的數(shù)據(jù)是可以各不相同的。
瀏覽器可以決定是否保存這片數(shù)據(jù),一旦WEB瀏覽器保存了這片數(shù)據(jù),那么它在以后每次訪問(wèn)該WEB服務(wù)器時(shí),都應(yīng)在HTTP請(qǐng)求頭中將這片數(shù)據(jù)回傳給WEB服務(wù)器。
顯然,Cookie最先是由WEB服務(wù)器發(fā)出的,是否發(fā)送Cookie和發(fā)送的Cookie的具體內(nèi)容,完全是由WEB服務(wù)器決定的。
Cookie在瀏覽器與WEB服務(wù)器之間傳送的過(guò)程如圖7.1所示。


4.3.4 Cache(緩存)
顯示在請(qǐng)求完成前后的瀏覽器緩存里URL地址欄里的詳細(xì)信息

5.3.5 Query String(查詢字符串)
顯示查詢字符串被用在是傳遞參數(shù)url中
如下圖所示:
http://reg.yodao.com/setcookie.jsp?username=mayingbao2002&domain=yodao.com&loginCookie=
uaLr3t2p5wKi_ku90vYy04gK1MamttMzYGFxdsppqrz3ZhjsWZ8jzDlVjmxEIpSSx2hn__
w3ZsoBSFu6gKRZyRUdIgZYzVciX&clearPersistCookie=

如上面的紅框中顯示的mayingbao2002字符串,是存在于請(qǐng)求的URL傳遞的參數(shù)
6.3.6 POST Data
顯示通過(guò)Post方式數(shù)據(jù)信息
以下是mail.163.com登錄過(guò)程中POST Data,如下圖所示:
https://reg.163.com/logins.jsp?type=1&url=http://fm163.163.com/coremail/fcg/ntesdoor2?lightweight=1&verifycookie=1&language=-1&style=-1
上面的紅框:application/x-www-form-urlencoded表示,post方式默認(rèn)提交數(shù)據(jù)編碼
備注:以下為Post方式提交數(shù)據(jù)編碼幾種方式:
text/plain |
以純文本的形式傳送 |
application/x-www-form-urlencoded |
默認(rèn)的編碼形式,即URL編碼形式 |
multipart/form-data |
MIME編碼,上傳文件的表單必須選擇該 |
Mime Type指的是如text/html,text/xml等類型
MIME(Multipurpose Internet Email Extension),意為多用途Internet郵件擴(kuò)展,它是一種多用途網(wǎng)際郵件擴(kuò)充協(xié)議,在1992年最早應(yīng)用于電子郵件系統(tǒng),但后來(lái)也應(yīng)用到瀏覽器。服務(wù)器會(huì)將它們發(fā)送的多媒體數(shù)據(jù)的類型告訴瀏覽器,而通知手段就是說(shuō)明該多媒體數(shù)據(jù)的MIME類型,從而讓瀏覽器知道接收到的信息哪些是MP3文件,哪些是JPEG文件等等。當(dāng)服務(wù)器把把輸出結(jié)果傳送到瀏覽器上的時(shí)候,瀏覽器必須啟動(dòng)適當(dāng)?shù)膽?yīng)用程序來(lái)處理這個(gè)輸出文檔。在HTTP中,MIME類型被定義在部分的Content-Type中。
數(shù)據(jù)類型 |
MIME類型 |
超文本標(biāo)記語(yǔ)言文本 .htm,.html文件 |
text/html(數(shù)據(jù)類別是text,種類是html,下同) |
純文本,.txt文件 |
text/plain |
RTF文本,.rtf文件 |
application/rtf |
GIF圖形,.gif文件 |
image/gif |
JPEG圖形,.jpeg, .jpg文件 |
image/jpeg |
au聲音,.au文件 |
audio/basic |
MIDI音樂(lè),mid,.midi文件 |
audio/midi,audio/x-midi |
RealAudio音樂(lè),.ra, .ram文件 |
audio/x-pn-realaudio |
MPEG,.mpg,.mpeg文件 |
video/mpeg |
AVI,.avi文件 |
video/x-msvideo |
GZIP,.gz文件 |
application/x-gzip |
TAR,.tar文件 |
application/x-tar |
如上圖紅圈所表示,可以看到POST Data 中的password和username數(shù)據(jù);

備注:get方法和Post方法區(qū)別
GET方法
GET方法是默認(rèn)的HTTP請(qǐng)求方法,我們?nèi)粘S肎ET方法來(lái)提交表單數(shù)據(jù),然而用GET方法提交的表單數(shù)據(jù)只經(jīng)過(guò)了簡(jiǎn)單的編碼,同時(shí)它將作為URL的一部分向Web服務(wù)器發(fā)送,因此,如果使用GET方法來(lái)提交表單數(shù)據(jù)就存在著安全隱患上。例如
Http://127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=?%E+??
從上面的URL請(qǐng)求中,很容易就可以辯認(rèn)出表單提交的內(nèi)容。(?之后的內(nèi)容)另外由于GET方法提交的數(shù)據(jù)是作為URL請(qǐng)求的一部分所以提交的數(shù)據(jù)量不能太大
POST方法
POST方法是GET方法的一個(gè)替代方法,它主要是向Web服務(wù)器提交表單數(shù)據(jù),尤其是大批量的數(shù)據(jù)。POST方法克服了GET方法的一些缺點(diǎn)。通過(guò)POST方法提交表單數(shù)據(jù)時(shí),數(shù)據(jù)不是作為URL請(qǐng)求的一部分而是作為標(biāo)準(zhǔn)數(shù)據(jù)傳送給Web服務(wù)器,這就克服了GET方法中的信息無(wú)法保密和數(shù)據(jù)量太小的缺點(diǎn)。因此,出于安全的考慮以及對(duì)用戶隱私的尊重,通常表單提交時(shí)采用POST方法。
7.3.7 Content
統(tǒng)計(jì)顯示收到的Http響應(yīng)信息
如下圖所示:可以查看

https://reg.163.com/logins.jsp?type=1&url=http://fm163.163.com/coremail/fcg/ntesdoor2?lightweight=1&verifycookie=1&language=-1&style=-1
頁(yè)響應(yīng)具體內(nèi)容:
8.3.8 Stream
顯示客戶端發(fā)送的數(shù)據(jù),然后服務(wù)器端返回的數(shù)據(jù)
客戶端發(fā)送總數(shù)據(jù):901 bytes sent to 218.107.55.86:80
客戶端接受到服務(wù)器端返回總數(shù)據(jù):247 bytes received by 192.168.52.188.10720
以下用請(qǐng)求一個(gè)mail.163.com中的Logo圖標(biāo)為例說(shuō)明:


http://mimg.163.com/logo/163logo.gif
左邊:客戶端向服務(wù)器端發(fā)送數(shù)據(jù)流
1 GET /logo/163logo.gif HTTP/1.1
以上代碼中“GET”代表請(qǐng)求方法,“closea_d.js”表示URI,“HTTP/1.1代表協(xié)議和協(xié)議的版本。
2 Accept: **表示所有
3 Referer: http://g1a114.mail.163.com/a/f/js3/0712240954/index_v6.htm
包含一個(gè)URL,用戶從該URL代表的頁(yè)面出發(fā)訪問(wèn)當(dāng)前請(qǐng)求的頁(yè)面
4 Accept-Language: zh-cn
表示能夠接受的返回?cái)?shù)據(jù)的語(yǔ)言
5 Accept-Encoding: gzip, deflate
Accept-Encoding表明了瀏覽器可接受的除了純文本之外的內(nèi)容編碼的類型,比如gzip壓縮還是deflate壓縮內(nèi)容。
6 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
客戶端標(biāo)識(shí)瀏覽器類型
7 Host: mimg.163.com
訪問(wèn)地址主機(jī)標(biāo)識(shí)地址
8 Connection: Keep-Alive
保持Tcp連接(前臺(tái)已有備注,這里不做說(shuō)明)
9Cookie: vjuids=-1b9063da8.1173d33f879.0.9aab8b85a459d; vjlast=1199406314; _ntes_nnid=a1e69963f40453af8a9ad171cc4cd8da,0|tech|; NTES_UFC=3000000100000000000000000000000000000000000000000000000000000000; Province=021;
City=021; ntes_mail_firstpage=normal; NTES_SESS=68LUOUH9ewcCBFyN5OXZ_0qf._
IOMCkFscaGYrooXpjtVF7r8Vx7jAzg7HGdWo00GQEn1ZmrZcX7FMAXnb052r8XOFZZYk.hN;
NETEASE_SSN=mayingbao2002; NETEASE_ADV=11&23&1199409658752;
Coremail=VDeAMrrrDFaTa%XCVwJiXXsRLSLkbLhZXXZGqPJkEXFKNt; wmsvr_domain=g1a114.mail.163.com
Cookies沒(méi)什么說(shuō)的,前面已列舉了
右邊:服務(wù)器端向客戶端返回?cái)?shù)據(jù)流
1 HTTP/1.0 304 Not Modified
服務(wù)器告訴客戶,原來(lái)緩沖的文檔還可以繼續(xù)使用。
2 Date: Mon, 31 Dec 2007 21:42:27 GMT
發(fā)送HTTP消息的日期
3 Content-Type: image/gif
服務(wù)器返回請(qǐng)求類型是image/gif
4 Expires: Wed, 30 Jan 2008 21:42:27 GMT
指定實(shí)體的有效期
5 Last-Modified: Wed, 19 Apr 2006 03:46:16 GMT
指定被請(qǐng)求資源上次被修改的日期和時(shí)間
6 Age: 5607
表示Http接受到請(qǐng)求操作響應(yīng)后的緩存時(shí)間
7 X-Cache: HIT from mimg68.nets.com
表示你的httprequest是由proxyserver回的
8 Connection: keep-alive
保持Tcp請(qǐng)求連接狀態(tài)
9.3.9 HttpWatch請(qǐng)求信息框
菜單區(qū)如上圖紅框所示:

Started: 表示開(kāi)始記錄請(qǐng)求一個(gè)URL時(shí)間
Time: 表示記錄請(qǐng)求耗費(fèi)的時(shí)間
Sent: 表示客戶端向服務(wù)器端發(fā)送請(qǐng)求字節(jié)大小
Reveived:表示客戶端收到服務(wù)端發(fā)送請(qǐng)求字節(jié)大小
Method: 表示請(qǐng)求URL方式
Result: 表示服務(wù)器返回到客戶端結(jié)果
以下是Httpwatch中http狀態(tài)碼列表
200 |
OK/Success status code |
302 |
Moved temporarily status code |
304 |
Not modified status code |
401 |
Access denied status code |
404 |
Page or file not found |
Aborted |
Internet Explorer aborted the HTTP request before a response was received |
(Cache) |
Content read from cache without sending an HTTP request to the server |
ERROR_* |
An error occurred such as ERROR_INTERNET_NAME_NOT_RESOLVED |
2xx |
Successful HTTP status code |
3xx |
Redirection HTTP status code |
4xx |
Client error HTTP status code |
5xx |
Server error HTTP status code |
詳細(xì)Http狀態(tài)查詢,可以參考這個(gè)
態(tài)代碼 |
狀態(tài)信息 |
含義 |
100 |
Continue |
初始的請(qǐng)求已經(jīng)接受,客戶應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的其余部分。(HTTP 1.1新) |
101 |
Switching Protocols |
服務(wù)器將遵從客戶的請(qǐng)求轉(zhuǎn)換到另外一種協(xié)議(HTTP 1.1新) |
200 |
OK |
一切正常,對(duì)GET和POST請(qǐng)求的應(yīng)答文檔跟在后面。 |
201 |
Created |
服務(wù)器已經(jīng)創(chuàng)建了文檔,Location頭給出了它的URL。 |
202 |
Accepted |
已經(jīng)接受請(qǐng)求,但處理尚未完成。 |
203 |
Non-Authoritative Information |
文檔已經(jīng)正常地返回,但一些應(yīng)答頭可能不正確,因?yàn)槭褂玫氖俏臋n的拷貝(HTTP 1.1新)。 |
204 |
No Content |
沒(méi)有新文檔,瀏覽器應(yīng)該繼續(xù)顯示原來(lái)的文檔。如果用戶定期地刷新頁(yè)面,而Servlet可以確定用戶文檔足夠新,這個(gè)狀態(tài)代碼是很有用的。 |
205 |
Reset Content |
沒(méi)有新的內(nèi)容,但瀏覽器應(yīng)該重置它所顯示的內(nèi)容。用來(lái)強(qiáng)制瀏覽器清除表單輸入內(nèi)容(HTTP 1.1新)。 |
206 |
Partial Content |
客戶發(fā)送了一個(gè)帶有Range頭的GET請(qǐng)求,服務(wù)器完成了它(HTTP 1.1新)。 |
300 |
Multiple Choices |
客戶請(qǐng)求的文檔可以在多個(gè)位置找到,這些位置已經(jīng)在返回的文檔內(nèi)列出。如果服務(wù)器要提出優(yōu)先選擇,則應(yīng)該在Location應(yīng)答頭指明。 |
301 |
Moved Permanently |
客戶請(qǐng)求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應(yīng)該自動(dòng)地訪問(wèn)新的URL。 |
302 |
Found |
類似于301,但新的URL應(yīng)該被視為臨時(shí)性的替代,而不是永久性的。注意,在HTTP1.0中對(duì)應(yīng)的狀態(tài)信息是“Moved Temporatily”。
出現(xiàn)該狀態(tài)代碼時(shí),瀏覽器能夠自動(dòng)訪問(wèn)新的URL,因此它是一個(gè)很有用的狀態(tài)代碼。
注意這個(gè)狀態(tài)代碼有時(shí)候可以和301替換使用。例如,如果瀏覽器錯(cuò)誤地請(qǐng)求http://host/~user(缺少了后面的斜杠),有的服務(wù)器返回301,有的則返回302。
嚴(yán)格地說(shuō),我們只能假定只有當(dāng)原來(lái)的請(qǐng)求是GET時(shí)瀏覽器才會(huì)自動(dòng)重定向。請(qǐng)參見(jiàn)307。 |
303 |
See Other |
類似于301/302,不同之處在于,如果原來(lái)的請(qǐng)求是POST,Location頭指定的重定向目標(biāo)文檔應(yīng)該通過(guò)GET提。℉TTP 1.1新)。 |
304 |
Not Modified |
客戶端有緩沖的文檔并發(fā)出了一個(gè)條件性的請(qǐng)求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,原來(lái)緩沖的文檔還可以繼續(xù)使用。 |
305 |
Use Proxy |
客戶請(qǐng)求的文檔應(yīng)該通過(guò)Location頭所指明的代理服務(wù)器提。℉TTP 1.1新)。 |
307 |
Temporary Redirect |
和302(Found)相同。許多瀏覽器 |
|