【抓包工具】HttpWatch(功能详细介绍)
??HttpWatch是功能強(qiáng)大的網(wǎng)頁(yè)數(shù)據(jù)分析工具,集成在IE工具欄,主要功能有網(wǎng)頁(yè)摘要、cookies管理、緩存管理、消息頭發(fā)送/接收,字符查詢、POST數(shù)據(jù)、目錄管理功能和報(bào)告輸出。HttpWatch是一款能夠收集并顯示深層信息的軟件,它不用代理服務(wù)器或一些復(fù)雜的網(wǎng)絡(luò)監(jiān)控工具,能夠在顯示網(wǎng)頁(yè)的同時(shí)顯示網(wǎng)頁(yè)請(qǐng)求和回應(yīng)的日志信息,甚至可以顯示瀏覽器緩存和IE之間的交換信息,集成在IE工具欄。(HttpWatch工具需要下載安裝,這里就不詳說了,直接搜索百度就ok了)
HTTP基礎(chǔ)知識(shí)之HTTP消息格式
當(dāng)用戶使用瀏覽器訪問某個(gè)URL地址、提交表單數(shù)據(jù)時(shí),瀏覽器會(huì)生成請(qǐng)求消息發(fā)送給服務(wù)器,服務(wù)器收到請(qǐng)求后,將生成的響應(yīng)消息返回給瀏覽器。瀏覽器發(fā)出的請(qǐng)求信息和服務(wù)器返回的響應(yīng)信息統(tǒng)稱為HTTP消息。HTTP消息有著嚴(yán)格的格式。
??一個(gè)完整的請(qǐng)求消息包括:一個(gè)請(qǐng)求行、若干消息頭及實(shí)體內(nèi)容,其中一些消息頭和實(shí)體內(nèi)容是可選的,消息頭和實(shí)體內(nèi)容之間使用空行隔開,下面是HTTP請(qǐng)求消息內(nèi)容:
??一個(gè)完整的響應(yīng)消息包括:一個(gè)狀態(tài)行、若干消息頭及實(shí)體內(nèi)容。與請(qǐng)求消息一樣,響應(yīng)消息中的一些消息頭和實(shí)體內(nèi)容也是可選的,消息頭和實(shí)體內(nèi)容之間也要用空行隔開。下面是HTTP響應(yīng)消息內(nèi)容:
??HTTP請(qǐng)求和HTTP響應(yīng)消息頭都是用于描述HTTP消息本身的信息,通常也把這種描述信息稱為元信息,消息頭相當(dāng)于服務(wù)器和瀏覽器之間的暗號(hào)指令,主要實(shí)現(xiàn)HTTP客戶機(jī)與服務(wù)器之間的條件請(qǐng)求和應(yīng)答。
通常情況下消息頭分為4類:信息頭、請(qǐng)求頭、響應(yīng)頭和實(shí)體頭:
1)通用信息頭:即能用于請(qǐng)求信息,也可以用于響應(yīng)消息,但與被傳輸?shù)膶?shí)體內(nèi)容沒有關(guān)系,如date、pragma。
2)請(qǐng)求頭:用于在請(qǐng)求消息中向服務(wù)器傳遞附加消息,主要包括客戶機(jī)可以接受的數(shù)據(jù)類型、壓縮方法、語(yǔ)言,以及客戶計(jì)算機(jī)上保留的cookie信息和發(fā)出該請(qǐng)求的超鏈接源地址等。
3)響應(yīng)頭:用于在響應(yīng)消息中向客戶端傳遞附加信息,包括服務(wù)程序的名稱、要求客戶端進(jìn)行認(rèn)證的方式、請(qǐng)求的資源已移動(dòng)到的新地址等。
4)實(shí)體頭:用做實(shí)體內(nèi)容的元信息,描述了實(shí)體內(nèi)容的屬性,包括實(shí)體信息的類型、長(zhǎng)度、壓縮方法、最后一次修改的時(shí)間和數(shù)據(jù)的有效期等。
?? 請(qǐng)求消息的請(qǐng)求行中包括3部分:請(qǐng)求方式、資源路徑以及所使用的HTTP協(xié)議版本,各部分之間使用空格分隔,語(yǔ)法格式如下:
請(qǐng)求方式 資源路徑 HTTP版本號(hào)其中表示回車和換行兩個(gè)字符的組合。
?? 響應(yīng)消息的狀態(tài)行中包括3部分的內(nèi)容:HTTP協(xié)議的版本號(hào)、一個(gè)表示成功或失敗的整數(shù)代碼(狀態(tài)碼)和對(duì)狀態(tài)碼進(jìn)行描述的文本信息,各部分內(nèi)容之間使用空格分隔,語(yǔ)法格式如下:HTTP版本號(hào) 狀態(tài)碼 原因敘述<CRLF>
HttpWatch工具之Request Grid
安裝好后在IE-工具下啟動(dòng)HTTPWatch,輸入地址后點(diǎn)擊record按鈕即開始進(jìn)行錄制,點(diǎn)擊stop按鈕即停止錄制,如圖所示,錄制了163郵箱的登錄操作。
Started:相對(duì)開始時(shí)間,是指接下來訪問的URL相對(duì)于第一個(gè)URL被打開的時(shí)間,比如http://mimg.127.net/copyright/year.js是在htmlhttp://mail.163.com/頁(yè)面的0.006s才執(zhí)行的。
Time Chart:耗時(shí)比例圖,即整個(gè)請(qǐng)求應(yīng)答過程各部分所花時(shí)間比例圖。
Time:請(qǐng)求所消耗的時(shí)間。
Sent:提交該請(qǐng)求所發(fā)送的字節(jié)數(shù)。
Received:提交請(qǐng)求后服務(wù)器返回的字節(jié)數(shù)。
Method:提交請(qǐng)求的方法。
Result:請(qǐng)求處理的結(jié)果。
Type:服務(wù)器返回內(nèi)容的類型。
URL:請(qǐng)求的URL地址。
?? 在測(cè)試過程中主要關(guān)注Time、Received、Result三項(xiàng)的值,Time是請(qǐng)求的耗時(shí),需要注意耗時(shí)大的請(qǐng)求,因?yàn)樵谡麄€(gè)業(yè)務(wù)響應(yīng)時(shí)間過程中,耗時(shí)長(zhǎng)的請(qǐng)求是最有可能需要調(diào)優(yōu)的;Received是返回的字節(jié)數(shù),在測(cè)試過程中需要關(guān)注返回字節(jié)數(shù)較大的需要,因?yàn)榉祷氐淖止?jié)數(shù)較大,會(huì)影響整個(gè)請(qǐng)求的耗時(shí),它也是調(diào)優(yōu)需要重點(diǎn)關(guān)注的內(nèi)容;Result是指請(qǐng)求響應(yīng)的狀態(tài),需要關(guān)注其響應(yīng)狀態(tài)為非200的值,請(qǐng)求響應(yīng)狀態(tài)只有200是正確的,其他的都是異常的,如果請(qǐng)求出現(xiàn)異常情況,說明事務(wù)很有可能操作失敗,這樣直接影響了事務(wù)的成功率。
HttpWatch工具之Request View
Request View內(nèi)容詳細(xì)記錄了每個(gè)請(qǐng)求的信息,主要包括下面列舉的內(nèi)容:
一、Overview,如圖所示
Display URL:表示請(qǐng)求的URL;
Started At:表示該請(qǐng)求開始的時(shí)間;
Submit Form:表示表單被提交到URL,只有POST操作時(shí)才會(huì)有該項(xiàng);
Connecte:表示TCP連接操作;
HTTP Request:表示一個(gè)請(qǐng)求被發(fā)出去;
HTTP Response:表示一個(gè)應(yīng)答被收回;
Read Cache:表示該次請(qǐng)求是從cache中讀取應(yīng)答消息;
二、Time Chart,如圖所示
顯示了一次請(qǐng)求應(yīng)答過程中每個(gè)時(shí)間片段所花費(fèi)的時(shí)間。一次完整的請(qǐng)求應(yīng)答過程需要經(jīng)歷的時(shí)間片段如下:Blocked->DNS Lookup->Connect ->Send ->Wait ->Receive。
各時(shí)間片段含義如下:
Blocked(阻塞):阻塞的時(shí)間主要包括預(yù)處理時(shí)間(如緩存查找)和網(wǎng)絡(luò)排隊(duì)等待時(shí)間,導(dǎo)致阻塞最主要原因是下載頁(yè)面中的圖片;
DNS Lookup(域名解釋):域名解釋時(shí)間主要是將主機(jī)名(如www.google.com)轉(zhuǎn)化為相應(yīng)的IP地址(216.239.59.99)的時(shí)間,在訪問URL地址時(shí),地址本身不能被直接訪問,需要將它對(duì)應(yīng)為相應(yīng)的IP地址才能訪問;
Connect(連接):連接時(shí)間是指與web服務(wù)器(或代理服務(wù)器)建立起TCP連接需要的時(shí)間,一個(gè)安全的HTTPS連接應(yīng)該包含SSL握手的過程,讓系統(tǒng)處于一種保持連接的狀態(tài),可以節(jié)約重復(fù)創(chuàng)建TCP連接的時(shí)間
Send(發(fā)送):發(fā)送時(shí)間是指從客戶端發(fā)送HTTP請(qǐng)求到服務(wù)器所花費(fèi)的時(shí)間,并且發(fā)送數(shù)據(jù)大小會(huì)影響發(fā)送的時(shí)間,如上傳文件花費(fèi)的時(shí)間就比較長(zhǎng);
Wait(等待):等待時(shí)間是指服務(wù)器響應(yīng)請(qǐng)求的時(shí)間,這個(gè)值包括網(wǎng)絡(luò)延遲和服務(wù)器處理請(qǐng)求所花費(fèi)的時(shí)間;
Receive(接收):接收時(shí)間是指服務(wù)器返回?cái)?shù)據(jù)到客戶端所花費(fèi)的時(shí)間,這個(gè)時(shí)間受所返回消息內(nèi)容大小、網(wǎng)絡(luò)帶寬和HTTP壓縮比的影響;
Cache Read(讀cache):讀緩存時(shí)間是指從瀏覽器緩存中讀取內(nèi)容的時(shí)間;
三、Headers,如圖所示
Headers Sent的內(nèi)容如下:
(Request-Line):包括HTTP提交請(qǐng)求方法、HTTP版本和URL子路徑;
Accept:可接受的文件類型;
Accept-Encoding:可接受的純文本之外的內(nèi)容編碼的類型;
Accept-Language:可接受的返回?cái)?shù)據(jù)的語(yǔ)言種類;
Connection:指定該次請(qǐng)求回應(yīng)結(jié)束后,如何處理連接;
Cache-Control:指定請(qǐng)求和響應(yīng)遵循的緩存機(jī)制;
Location:用于重定向接收者到一個(gè)新URL地址;
Host:請(qǐng)求連接的主機(jī)名;
Headers Received的內(nèi)容如下:
(Status-Line):包括HTTP請(qǐng)求的狀態(tài)碼和HTTP版本信息;
Connection:指定該次請(qǐng)求回應(yīng)結(jié)束后,如何處理連接;
Cache-Control:指定請(qǐng)求和響應(yīng)遵循的緩存機(jī)制;
Content-Language:內(nèi)容數(shù)據(jù)的語(yǔ)言種類;
Content-Length:傳輸?shù)膬?nèi)容長(zhǎng)度;
Content-Type:內(nèi)容數(shù)據(jù)的類型(Mini Type);
Last-Modified:服務(wù)器上保存內(nèi)容的最后修訂時(shí)間;
Expires:內(nèi)容數(shù)據(jù)被緩存的過期時(shí)間;
四、Cookies,如圖所示
Cookie Name:cookie的名稱;
Direction:表明該cookie是由客戶端發(fā)送到服務(wù)器的還是從服務(wù)器接收的;
Value:cookie的內(nèi)容;
Path:該cookie所在站點(diǎn)的路徑;
Domain:顯示該cookie所屬的域名或主機(jī)名;
Expires:指該cookie失效時(shí)間,當(dāng)瀏覽器關(guān)閉時(shí)該cookie值將被刪除;
五、Cache,如圖所示
URL in cache?:該項(xiàng)內(nèi)容是否寫入瀏覽器緩存 ;
Expires:cache失效日期和時(shí)間;
Last Modification:當(dāng)cache內(nèi)容被存儲(chǔ)或更新時(shí),那么更改日期將會(huì)修改為最近的日期;
Last Cache Update:cache內(nèi)容被更新的最近時(shí)間;
Last Access:最近一次讀cache的時(shí)間;
ETag:用來匹配服務(wù)器上的實(shí)體,使用的方式為模糊匹配;
Hit Count:讀cache內(nèi)容的次數(shù);
六、Query String,如圖所示
Query String是通過URL來傳遞參數(shù)的一種方式,格式通常為:…?name1=value1&name2=value2&…
Query String內(nèi)容中可以顯示當(dāng)前URL中所有的參數(shù)名及對(duì)應(yīng)的值,圖7所對(duì)應(yīng)的URL如下:
http://ir3.mail.163.com/get.do?prod=wmail_lbp&ver=1&uid=****@163.com&domain=163.com&mobUser=0&callback=themeHandler.callback&rnd=0.639472691290614
七、POST Data,如圖所示,顯示以POST方式請(qǐng)求的數(shù)據(jù)信息,其中Mime Type:application/json,是指POST方式提交數(shù)據(jù)的編碼方式。
八、Content,如圖所示,顯示接收到的HTTP響應(yīng)信息,包括MIME的類型,總的字節(jié)數(shù)和這些內(nèi)容是否從服務(wù)中下載或從緩存中讀取,如果對(duì)HTTP進(jìn)行了壓縮,還應(yīng)該顯示壓縮的方式、壓縮后的文件大小及壓縮比。
九、Stream,如圖所示,主要是顯示客戶端發(fā)送的內(nèi)容和服務(wù)器返回的內(nèi)容。左邊顯示的是客戶端發(fā)送的內(nèi)容,顯示了數(shù)據(jù)流大小和發(fā)送到哪個(gè)服務(wù)器,如圖所示,發(fā)送的字節(jié)數(shù)為2173個(gè)字節(jié),服務(wù)器的IP地址為220.181.12.208,端口號(hào)為80。右邊顯示的是服務(wù)器返回的內(nèi)容,包括返回的字節(jié)數(shù)和返回到客戶端的IP地址。
左邊為客戶端向服務(wù)器提交的請(qǐng)求,內(nèi)容如下:
GET /entry/cgi/ntesdoor?df=loginjustnowmail163&funcid=loginjustnow&iframe=1 HTTP/1.1:GET表示請(qǐng)求方式,‘/’表示URI(uniform resource identifier,是web上訪問可用資源的一種通用資源標(biāo)識(shí)符),HTTP/1.1表示使用的協(xié)議和協(xié)議版本;
Accept:表示接受返回?cái)?shù)據(jù)的類型, /表示允許接受所有的數(shù)據(jù)類型;
Referer: 表示一個(gè)URL地址(如http://mail.163.com/),表示從該地址發(fā)出的請(qǐng)求;
Accept-Language: 表示接受返回?cái)?shù)據(jù)的語(yǔ)言,如zh-CN表示接受返回?cái)?shù)據(jù)語(yǔ)言為中文;
Accept-Encoding: 表示瀏覽器可接受除純文本外的內(nèi)容編碼的類型,如gzip壓縮, deflate壓縮內(nèi)容;
User-Agent:標(biāo)識(shí)客戶端瀏覽器類型及相關(guān)版本信息;
Host:主機(jī)標(biāo)識(shí)地址;
Connection: 表示連接狀態(tài),如Keep-Alive表示保持TCP的連接狀態(tài);
右邊的內(nèi)容為服務(wù)器向客戶端返回的數(shù)據(jù)內(nèi)容,如下:
HTTP/1.1 200 OK:表示協(xié)議、協(xié)議版本、請(qǐng)求的狀態(tài);
Date:表示發(fā)送HTTP消息的日期;
Expires:表示實(shí)體的有效期;
Content-Type:表示服務(wù)器返回請(qǐng)求類型,如text/html;
Last-Modified:表示被請(qǐng)求資源上次修改的日期和時(shí)間;
Age:表示HTTP接受請(qǐng)求操作響應(yīng)的緩存時(shí)間;
十、!Warnings,如圖所示,顯示了單個(gè)請(qǐng)求出現(xiàn)警告的內(nèi)容,顯示的內(nèi)容包括警告ID、警告類型和警告的詳細(xì)描述,關(guān)于警告類型主要3種:performance(性能)、security(安全)和Functional(功能)
HttpWatch工具之Summary View
summary可以顯示一個(gè)頁(yè)面或一組頁(yè)面請(qǐng)求的概要信息,如圖所示:
Elapsed Time:表示從第一個(gè)請(qǐng)求開始到當(dāng)前頁(yè)面所有請(qǐng)求都完成所消耗的時(shí)間,單位為s,顯然該值越小越好;
Network Round Trips:表示提交請(qǐng)求到請(qǐng)求信息返回共經(jīng)歷的web服務(wù)器的次數(shù),同樣該值越小越好;
Downloaded Data:下載的字節(jié)數(shù),單位為字節(jié),同樣該值越小越好;
Uploaded Data:表示發(fā)送到服務(wù)器端的數(shù)據(jù),單位為字節(jié)數(shù),同樣該值越小越好;
HTTP Compression Savings:表示HTTP數(shù)據(jù)壓縮后,減少的字節(jié)數(shù);
DNS Lookups:表示將域名解析為對(duì)應(yīng)的IP地址的次數(shù)(如將域名www.google.com解析為72.14.221.103);
TCP Connects:表示建立TCP連接的次數(shù),這項(xiàng)值用于表示服務(wù)器保持連接的能力,同樣該值越小越好;
Total HTTPS overhead:在所有的提交請(qǐng)求中有多少需要加密的請(qǐng)求;
Average HTTPS overhead per request:平均每個(gè)請(qǐng)求的HTTP值,如果這個(gè)值過高很可能是因?yàn)榉?wù)器不正確引起的。
page events的內(nèi)容如圖所示,表示頁(yè)面請(qǐng)求的事件以及每個(gè)事件對(duì)應(yīng)所消耗的時(shí)間,關(guān)于時(shí)間塊的組成在request view中的time chart部分進(jìn)行了詳細(xì)的介紹,這里就不贅述。
timings的內(nèi)容如圖所示,表示URL請(qǐng)求各階段所消耗的時(shí)間,同上也是不贅述。
status codes的內(nèi)容如圖15所示,主要顯示客戶端提交請(qǐng)求后,服務(wù)器返回的狀態(tài)碼。
errors和warning內(nèi)容主要是顯示在請(qǐng)求過程中,出現(xiàn)的錯(cuò)誤和警告的信息。
HttpWatch工具之其他功能
除上面描述的功能外,還有兩個(gè)其他功能,即過濾和查找功能,如圖所示:
filter對(duì)話框:
find對(duì)話框:
總結(jié)
以上是生活随笔為你收集整理的【抓包工具】HttpWatch(功能详细介绍)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【REST SOAP】REST和SOA
- 下一篇: 【抓包工具】Wireshark(详细介绍