1. 程式人生 > >網頁抓包工具httpwatch

網頁抓包工具httpwatch

概述:

HttpWatch強大的網頁資料分析工具.整合在Internet Explorer工具欄.包括網頁摘要.Cookies管理.快取管理.訊息頭髮送/接受.字元查詢.POST 資料和目錄管理功能.報告輸出 HttpWatch 是一款能夠收集並顯示頁頁深層資訊的軟體。它不用代理伺服器或一些複雜的網路監控工具,就能夠在顯示網頁同時顯示網頁請求和迴應的日誌資訊。甚至可以顯示瀏覽器快取和IE之間的交換資訊。整合在Internet Explorer工具欄。

安裝HttpWatch

略過^_^ 

基本功能介紹

啟動Httpwatch

從IE的“檢視”—“瀏覽器欄”—“HttpWatch”啟動HttpWatch。如下圖所示:


以下是HttpWatch程式介面

以下用登入我的郵箱mail.163.com例子來展示Httpwatch:

點選“Record”後,在IE開啟需要錄製的網址,mail.163.com,輸入使用者名稱,密碼後完成登入操作

1. 3.1 Overview(概要)

表示選定某個資訊顯示其概要資訊

如上圖紅框所示:

Result:200

瀏覽器請求的URL

Started At      2008-Jan-04 09:21:09.422 (local time)

請求開始時間(實際記錄的是本機的時間)

Connect       Connect to IP address '218.107.55.86'

請求的網址的IP地址

Http請求,當瀏覽器向Web伺服器發出請求時,它向伺服器傳遞了一個數據塊,也就是請求資訊

Http Response Headers and content returned

Http響應,當瀏覽器接受到web伺服器返回的資訊時

2. 3.2 Header(報頭)

表示從Web伺服器傳送和接受的報頭資訊;

如上圖紅框所示:

Http請求頭髮送資訊

Headers Sent                     value

Request-Line                     GET /external/closea_d.js HTTP/1.1

以上程式碼中“GET”代表請求方法,“closea_d.js”表示URI,“HTTP/1.1代表協議和協議的版本。

Accept                           */*

指示能夠接受的返回資料的範圍, */*表示所有

Accept-Encoding                  gzip, deflate

Accept-Encoding表明了瀏覽器可接受的除了純文字之外的內容編碼的型別,比如gzip壓縮還是deflate壓縮內容。

Accept-Language                  zh-cn

表示能夠接受的返回資料的語言

Connection                       Keep-Alive

保持Tcp請求連線

備註:在HTTP工作開始之前,Web瀏覽器首先要通過網路與Web伺服器建立連線,該連線是通過TCP來完成的,該協議與IP協議共同構建Internet,即著名的TCP/IP協議族,因此Internet又被稱作是TCP/IP網路。HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之後才能,才能進行更層協議的連線,因此,首先要建立TCP連線,一般TCP連線的埠號是80

Cookie                   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    

Cookie沒什麼說的就是客戶端記錄相關資訊

Host                     mimg.163.com

請求連線的主機名稱’

Referer Http://g1a114.mail.163.com/a/p/main.htm?sid=XCVwJiXXsRLSLkbLhZXXZGqPJkEXFKNt    

包含一個URL,使用者從該URL代表的頁面出發訪問當前請求的頁面

User-Agent         Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)                                                                                    

客戶端標識瀏覽器型別

Http請求頭返回資訊

Headers Received                                              Value

Status-Line                                                    Http/1.0 200 ok

表示Http服務端響應返回200

Accept-Ranges                                               bytes

Http請求範圍的度量單位

Age                                                       117

表示Http接受到請求操作響應後的快取時間

Cache-Control                                             max-age=3600

一個用於定義快取指令的通用頭標

Connection                                               keep-alive

保持Tcp請求連線

Content-Type                                             application/x-javascript

標明發送或者接收的實體的MIME型別

Date                                                Fri, 04 Jan 2008 01:12:26 GMT 

傳送HTTP訊息的日期

Etag                                              "10f470-734-b32eb00"

一種實體頭標,它向被髮送的資源分派一個唯一的識別符號

Expires                                      Fri, 04 Jan 2008 02:12:26 GMT

指定實體的有效期

Last-Modified                                Fri, 04 Jan 2008 01:01:00 GMT

指定被請求資源上次被修改的日期和時間

Server                                      Apache

一種標明Web伺服器軟體及其版本號的頭標

X-Cache                                    HIT from mimg68.nets.com    

表示你的 http request 是由 proxy server 回的 

3. 3.3 Cookies

顯示Cookies資訊

如上圖所示City=021,其實是我163郵箱中設定城市資訊值,在Cookies中記錄為021(代表上海這個城市)

備註:

什麼是cookie?Cookie是一種在客戶端保持HTTP狀態資訊的技術,Cookie是在瀏覽器訪問WEB伺服器的某個資源時,由WEB伺服器在HTTP響應訊息頭中附帶傳送給瀏覽器的一片資料,WEB伺服器傳送給各個客戶端瀏覽器的資料是可以各不相同的。

瀏覽器可以決定是否儲存這片資料,一旦WEB瀏覽器儲存了這片資料,那麼它在以後每次訪問該WEB伺服器時,都應在HTTP請求頭中將這片資料回傳給WEB伺服器。

顯然,Cookie最先是由WEB伺服器發出的,是否傳送Cookie和傳送的Cookie的具體內容,完全是由WEB伺服器決定的。

Cookie在瀏覽器與WEB伺服器之間傳送的過程如圖7.1所示。



4. 3.4 Cache(快取)

顯示在請求完成前後的瀏覽器快取裡URL位址列裡的詳細資訊

5. 3.5 Query String(查詢字串)

顯示查詢字串被用在是傳遞引數url

如下圖所示:

http://reg.yodao.com/setcookie.jsp?username=mayingbao2002&domain=yodao.com&loginCookie=uaLr3t2p5wKi_ku90vYy04gK1MamttMzYGFxdsppqrz3ZhjsWZ8jzDlVjmxEIpSSx2hn__w3ZsoBSFu6gKRZyRUdIgZYzVciX&clearPersistCookie=


如上面的紅框中顯示的mayingbao2002字串,是存在於請求的URL傳遞的參

6. 3.6 POST Data

顯示通過Post方式資料資訊

以下是mail.163.com登入過程中POST Data,如下圖所示:

https://reg.163.com/logins.jsp?type=1&url=http://fm163.163.com/coremail/fcg/ntesdoor2?lightweight%3D1%26verifycookie%3D1%26language%3D-1%26style%3D-1

上面的紅框:application/x-www-form-urlencoded表示,post方式預設提交資料編碼

備註:以下為Post方式提交資料編碼幾種方式:

text/plain

以純文字的形式傳送

application/x-www-form-urlencoded

預設的編碼形式,即URL編碼形式

multipart/form-data

MIME編碼,上傳檔案的表單必須選擇該

Mime Type指的是如text/html,text/xml等型別

MIME(Multipurpose Internet Email Extension),意為多用途Internet郵件擴充套件,它是一種多用途網際郵件擴充協議,在1992年最早應用於電子郵件系統,但後來也應用到瀏覽器。伺服器會將它們傳送的多媒體資料的型別告訴瀏覽器,而通知手段就是說明該多媒體資料的MIME型別,從而讓瀏覽器知道接收到的資訊哪些是MP3檔案,哪些是JPEG檔案等等。當伺服器把把輸出結果傳送到瀏覽器上的時候,瀏覽器必須啟動適當的應用程式來處理這個輸出文件。在HTTP中,MIME型別被定義在<head>、</head>部分的Content-Type中。

資料型別

MIME型別

超文字標記語言文字 .htm,.html檔案

text/html(資料類別是text,種類是html,下同)

純文字,.txt檔案

text/plain

RTF文字,.rtf檔案

application/rtf

GIF圖形,.gif檔案

image/gif

JPEG圖形,.jpeg, .jpg檔案

image/jpeg

au聲音,.au檔案

audio/basic

MIDI音樂,mid,.midi檔案

audio/midi,audio/x-midi

RealAudio音樂,.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資料;

備註:get方法和Post方法區別

GET方法

GET方法是預設的HTTP請求方法,我們日常用GET方法來提交表單資料,然而用GET方法提交的表單資料只經過了簡單的編碼,同時它將作為URL的一部分向Web伺服器傳送,因此,如果使用GET方法來提交表單資料就存在著安全隱患上。例如

Http://127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB

從上面的URL請求中,很容易就可以辯認出表單提交的內容。(?之後的內容)另外由於GET方法提交的資料是作為URL請求的一部分所以提交的資料量不能太大

POST方法

POST方法是GET方法的一個替代方法,它主要是向Web伺服器提交表單資料,尤其是大批量的資料。POST方法克服了GET方法的一些缺點。通過POST方法提交表單資料時,資料不是作為URL請求的一部分而是作為標準資料傳送給Web伺服器,這就克服了GET方法中的資訊無法保密和資料量太小的缺點。因此,出於安全的考慮以及對使用者隱私的尊重,通常表單提交時採用POST方法。

7. 3.7 Content

統計顯示收到的Http響應資訊

如下圖所示:可以檢視

頁響應具體內容:

8. 3.8 Stream

顯示客戶端傳送的資料,然後伺服器端返回的資料

客戶端傳送總資料:901 bytes sent to 218.107.55.86:80

客戶端接受到伺服器端返回總資料:247 bytes received by 192.168.52.188.10720

以下用請求一個mail.163.com中的Logo圖示為例說明:



左邊:客戶端向伺服器端傳送資料流

1 GET /logo/163logo.gif HTTP/1.1

以上程式碼中“GET”代表請求方法,“closea_d.js”表示URI,“HTTP/1.1代表協議和協議的版本。

2 Accept: */*

指示能夠接受的返回資料的範圍, */*表示所有

包含一個URL,使用者從該URL代表的頁面出發訪問當前請求的頁面

4 Accept-Language: zh-cn

表示能夠接受的返回資料的語言

5 Accept-Encoding: gzip, deflate

Accept-Encoding表明了瀏覽器可接受的除了純文字之外的內容編碼的型別,比如gzip壓縮還是deflate壓縮內容。

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)

客戶端標識瀏覽器型別

7 Host: mimg.163.com

訪問地址主機標識地址

8 Connection: Keep-Alive

保持Tcp連線(前臺已有備註,這裡不做說明)

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沒什麼說的,前面已列舉了

右邊:伺服器端向客戶端返回資料流

1 HTTP/1.0 304 Not Modified

伺服器告訴客戶,原來緩衝的文件還可以繼續使用。

2 Date: Mon, 31 Dec 2007 21:42:27 GMT

傳送HTTP訊息的日期

3 Content-Type: image/gif

伺服器返回請求型別是image/gif

4 Expires: Wed, 30 Jan 2008 21:42:27 GMT

指定實體的有效期

5 Last-Modified: Wed, 19 Apr 2006 03:46:16 GMT

指定被請求資源上次被修改的日期和時間

6 Age: 5607

表示Http接受到請求操作響應後的快取時間

7 X-Cache: HIT from mimg68.nets.com

表示你的 http request 是由 proxy server 回的 

8 Connection: keep-alive

保持Tcp請求連線狀態

9. 3.9 HttpWatch請求資訊框

選單區如上圖紅框所示:

Started: 表示開始記錄請求一個URL時間

Time: 表示記錄請求耗費的時間

Sent: 表示客戶端向伺服器端傳送請求位元組大小

Reveived:表示客戶端收到服務端傳送請求位元組大小

Method: 表示請求URL方式

Result: 表示伺服器返回到客戶端結果

以下是Httpwatch中http狀態碼列表

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

詳細Http狀態查詢,可以參考這個

態程式碼

狀態資訊

含義

100

Continue

初始的請求已經接受,客戶應當繼續傳送請求的其餘部分。(HTTP 1.1新)

101

Switching Protocols

伺服器將遵從客戶的請求轉換到另外一種協議(HTTP 1.1新)

200

OK

一切正常,對GET和POST請求的應答文件跟在後面。

201

Created

伺服器已經建立了文件,Location頭給出了它的URL。

202

Accepted

已經接受請求,但處理尚未完成。

203

Non-Authoritative Information

文件已經正常地返回,但一些應答頭可能不正確,因為使用的是文件的拷貝(HTTP 1.1新)。

204

No Content

沒有新文件,瀏覽器應該繼續顯示原來的文件。如果使用者定期地重新整理頁面,而Servlet可以確定使用者文件足夠新,這個狀態程式碼是很有用的。

205

Reset Content

沒有新的內容,但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容(HTTP 1.1新)。

206

Partial Content

客戶傳送了一個帶有Range頭的GET請求,伺服器完成了它(HTTP 1.1新)。

300

Multiple Choices

客戶請求的文件可以在多個位置找到,這些位置已經在返回的文件內列出。如果伺服器要提出優先選擇,則應該在Location應答頭指明。

301

Moved Permanently

客戶請求的文件在其他地方,新的URL在Location頭中給出,瀏覽器應該自動地訪問新的URL。

302

Found

類似於301,但新的URL應該被視為臨時性的替代,而不是永久性的。注意,在HTTP1.0中對應的狀態資訊是“Moved Temporatily”。

出現該狀態程式碼時,瀏覽器能夠自動訪問新的URL,因此它是一個很有用的狀態程式碼。

注意這個狀態程式碼有時候可以和301替換使用。例如,如果瀏覽器錯誤地請求http://host/~user(缺少了後面的斜槓),有的伺服器返回301,有的則返回302。

嚴格地說,我們只能假定只有當原來的請求是GET時瀏覽器才會自動重定向。請參見307。

303

See Other

類似於301/302,不同之處在於,如果原來的請求是POST,Location頭指定的重定向目標文件應該通過GET提取(HTTP 1.1新)。

304

Not Modified

客戶端有緩衝的文件併發出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文件)。伺服器告訴客戶,原來緩衝的文件還可以繼續使用。

305

Use Proxy

客戶請求的文件應該通過Location頭所指明的代理伺服器提取(HTTP 1.1新)。

307

Temporary Redirect

和302(Found)相同。許多瀏覽器會錯誤地響應302應答進行重定向,即使原來的請求是POST,即使它實際上只能在POST請求的應答是303時才能重定向。由於這個原因,HTTP 1.1新增了307,以便更加清除地區分幾個狀態程式碼:當出現303應答時,瀏覽器可以跟隨重定向的GET和POST請求;如果是307應答,則瀏覽器只能跟隨對GET請求的重定向。(HTTP 1.1新)

400

Bad Request

請求出現語法錯誤。

401

Unauthorized

客戶試圖未經授權訪問受密碼保護的頁面。應答中會包含一個WWW-Authenticate頭,瀏覽器據此顯示使用者名稱字/密碼對話方塊,然後在填寫合適的Authorization頭後再次發出請求。

403

Forbidden

資源不可用。伺服器理解客戶的請求,但拒絕處理它。通常由於伺服器上檔案或目錄的許可權設定導致。

404

Not Found

無法找到指定位置的資源。這也是一個常用的應答。

405

Method Not Allowed

請求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)對指定的資源不適用。(HTTP 1.1新)

406

Not Acceptable

指定的資源已經找到,但它的MIME型別和客戶在Accpet頭中所指定的不相容(HTTP 1.1新)。

407

Proxy Authentication Required

類似於401,表示客戶必須先經過代理伺服器的授權。(HTTP 1.1新)

408

Request Timeout

在伺服器許可的等待時間內,客戶一直沒有發出任何請求。客戶可以在以後重複同一請求。(HTTP 1.1新)

409

Conflict

通常和PUT請求有關。由於請求和資源的當前狀態相沖突,因此請求不能成功。(HTTP 1.1新)

410

Gone

所請求的文件已經不再可用,而且伺服器不知道應該重定向到哪一個地址。它和404的不同在於,返回407表示文件永久地離開了指定的位置,而404表示由於未知的原因文件不可用。(HTTP 1.1新)

411

Length Required

伺服器不能處理請求,除非客戶傳送一個Content-Length頭。(HTTP 1.1新)

412

Precondition Failed