創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)是專業(yè)的福建網(wǎng)站建設(shè)公司,福建接單;提供網(wǎng)站設(shè)計、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行福建網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!這篇文章將為大家詳細(xì)講解有關(guān)Python爬蟲代理工具Fiddler是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
Fiddler基礎(chǔ)知識
Fiddler是強(qiáng)大的抓包工具,它的原理是以web代理服務(wù)器的形式進(jìn)行工作的,使用的代理地址是:127.0.0.1,端口默認(rèn)為8888,我們也可以通過設(shè)置進(jìn)行修改。
代理就是在客戶端和服務(wù)器之間設(shè)置一道關(guān)卡,客戶端先將請求數(shù)據(jù)發(fā)送出去后,代理服務(wù)器會將數(shù)據(jù)包進(jìn)行攔截,代理服務(wù)器再冒充客戶端發(fā)送數(shù)據(jù)到服務(wù)器;同理,服務(wù)器將響應(yīng)數(shù)據(jù)返回,代理服務(wù)器也會將數(shù)據(jù)攔截,再返回給客戶端。
Fiddler可以抓取支持http代理的任意程序的數(shù)據(jù)包,如果要抓取https會話,要先安裝證書。
HTTP協(xié)議
要分析Fiddler抓取的數(shù)據(jù)包,我們首先要熟悉HTTP協(xié)議。HTTP即超文本傳輸協(xié)議,是一個基于請求與響應(yīng)模式的、無狀態(tài)的、應(yīng)用層的協(xié)議,絕大多數(shù)的Web開發(fā),都是構(gòu)建在HTTP協(xié)議之上的Web應(yīng)用。
HTTP的工作過程:當(dāng)我們請求一個超鏈接時,HTTP就開始工作了,客戶端先發(fā)送一個請求到服務(wù)器,請求內(nèi)容包括:協(xié)議版本號、請求地址、請求方式、請求頭和請求參數(shù);服務(wù)器收到請求后做相應(yīng)的處理,并將響應(yīng)數(shù)據(jù)返回到客戶端,響應(yīng)內(nèi)容包括:協(xié)議版本號、狀態(tài)碼和響應(yīng)數(shù)據(jù)。前端根據(jù)響應(yīng)數(shù)據(jù)做相應(yīng)的處理,就是最終我們看到的內(nèi)容。這些過程是HTTP自動完成的,我們只是輸入或點擊請求地址,然后查看前端給我們展示的內(nèi)容。更多關(guān)于HTTP協(xié)議的介紹請參考:http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html
請求方式常用的有:GET、PUT、POST、DELETE。
HTTP狀態(tài)碼主要分為5類:以1開頭的代表請求已被接受,需要繼續(xù)處理;以2開頭的代表請求已成功被服務(wù)器接收、理解、并接受;以3開頭的代表需要客戶端采取進(jìn)一步的操作才能完成請求;以4開頭的代表了客戶端看起來可能發(fā)生了錯誤,妨礙了服務(wù)器的處理;以5開頭的代表了服務(wù)器在處理請求的過程中有錯誤或者異常狀態(tài)發(fā)生,也有可能是服務(wù)器意識到以當(dāng)前的軟硬件資源無法完成對請求的處理。
常見的主要有:200:服務(wù)器成功處理了請求;404:未找到資源;500:內(nèi)部服務(wù)器錯誤;503:服務(wù)器目前無法為請求提供服務(wù);302:請求的URL已臨時轉(zhuǎn)移;304:客戶端的緩存資源是最新的,要客戶端使用緩存。
每個狀態(tài)碼的詳細(xì)介紹請參考:https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660?fr=aladdin
Fiddler的使用
Fiddler是一個很好用的抓包工具,可以將網(wǎng)絡(luò)傳輸發(fā)送與接收的數(shù)據(jù)包進(jìn)行截獲、重發(fā)、編輯等操作。也可以用來檢測流量。
Fiddler安裝后,設(shè)置的端口默認(rèn)為8888,當(dāng)Fiddler啟動后,默認(rèn)將IE的代理設(shè)為了127.0.0.1:8888,而其他如火狐瀏覽器需要手動設(shè)置代理后才可以抓包。設(shè)置內(nèi)容如圖:
1)要使用Fiddler進(jìn)行抓包,首先需要確保Capture Traffic是開啟的(安裝后是默認(rèn)開啟的),勾選File->Capture Traffic,也可以直接點擊Fiddler界面左下角的圖標(biāo)開啟和關(guān)閉抓包。
2)所以基本上不需要做什么配置,安裝后就可以進(jìn)行抓包了。那么我們怎么分析抓到的這些數(shù)據(jù)包呢?如圖所示的區(qū)域為數(shù)據(jù)包列表,要分析這些數(shù)據(jù)包,首先要了解各字段的含義。
#:順序號,按照抓包的順序從1遞增
Result:HTTP狀態(tài)碼
Protocol:請求使用的協(xié)議,如HTTP/HTTPS/FTP等
HOST:請求地址的主機(jī)名或域名
URL:請求資源的位置
Body:請求大小
Caching:請求的緩存過期時間或者緩存控制值
Content-Type:請求響應(yīng)的類型
Process:發(fā)送此請求的進(jìn)程ID
Comments:備注
Custom:自定義值
3)每個Fiddler抓取到的數(shù)據(jù)包都會在該列表中展示,點擊具體的一條數(shù)據(jù)包可以在右側(cè)菜單點擊Insepector查看詳細(xì)內(nèi)容。主要分為請求(即客戶端發(fā)出的數(shù)據(jù))和響應(yīng)(服務(wù)器返回的數(shù)據(jù))兩部分。
4)HTTP Request Header:以百度為例,查看請求百度主頁這條數(shù)據(jù)包的請求數(shù)據(jù),從上面的Headers中可以看到如下內(nèi)容:
請求方式:GET
協(xié)議: HTTP/1.1
Client 頭域:
Accept: text/html, application/xhtml+xml, image/jxr, */* ---------瀏覽器端可以接受的媒體類型
Accept-Encoding: gzip, deflate ---------壓縮方法
Accept-Language: zh-CN ---------語言類型
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393 ---------客戶端使用的操作系統(tǒng)和瀏覽器的名稱和版本
COOKIE頭域:將cookie值發(fā)送給服務(wù)器
Transport 頭域:
Connection:當(dāng)網(wǎng)頁打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接是否關(guān)閉。keep-alive表示不會關(guān)閉,客戶端再次訪問這個服務(wù)器上的網(wǎng)頁,會繼續(xù)使用這一條已經(jīng)建立的連接;close表示關(guān)閉,客戶端再次訪問這個服務(wù)器上的網(wǎng)頁,需要重新建立連接。
HOST:主機(jī)名或域名,若沒有指定端口,表示使用默認(rèn)端口80.
5)HTTP Response Header:繼續(xù)以百度為例,如圖所示:
協(xié)議:HTTP/1.1
狀態(tài)碼:200
Cache頭域:
Cache-Control: private ---------此響應(yīng)消息不能被共享緩存處理,對于其他用戶的請求無效
Date: Sat, 05 Aug 2017 04:37:43 GMT ---------生成消息的具體時間和日期
Expires: Sat, 05 Aug 2017 04:37:42 GMT ---------瀏覽器會在指定過期時間內(nèi)使用本地緩存
Cookie/Login 頭域:
Set-Cookie: BDSVRTM=264; path=/ ---------把cookie發(fā)送到客戶端
Set-Cookie: BD_HOME=1; path=/
Set-Cookie: H_PS_PSSID=1425_21097_22157; path=/; domain=.baidu.com
Entity頭域
Content-Length: 202740 ---------正文長度
Content-Type: text/html;charset=utf-8 ---------告知客戶端服務(wù)器本身響應(yīng)的對象的類型和字符集
Miscellaneous 頭域:
Bdpagetype: 2
Bdqid: 0x99791efd00036253
Bduserid: 2577220064
Server: BWS/1.1 ---------指明HTTP服務(wù)器的軟件信息
X-Ua-Compatible: IE=Edge,chrome=1
Security頭域:
Strict-Transport-Security: max-age=172800 ---------基于安全考慮而需要發(fā)送的參數(shù),關(guān)于這個參數(shù)的解釋,請參考:http://www.freebuf.com/articles/web/66827.html
Transport頭域:
Connection: Keep-Alive
6)TextView:顯示請求或響應(yīng)的數(shù)據(jù)。
7)WebForms:請求部分以表單形式顯示所有的請求參數(shù)和參數(shù)值;響應(yīng)部分與TextView內(nèi)容是一樣的。
8)Auth:顯示認(rèn)證信息,如Authorization
9)Cookies:顯示所有cookies
10)Raw:顯示Headers和Body數(shù)據(jù)
11)JSON:若請求或響應(yīng)數(shù)據(jù)是json格式,以json形式顯示請求或響應(yīng)內(nèi)容
12)XML:若請求或響應(yīng)數(shù)據(jù)是xml格式,以xml形式顯示請求或響應(yīng)內(nèi)容
13)上面是以百度主頁為例,百度主頁采用的是GET請求,在TextView中沒有請求body,我們再以無憂行網(wǎng)站登錄接口為例,它是一個POST請求,除了請求頭外,在TextView中多了請求數(shù)據(jù)。這也是GET請求和POST請求的一個區(qū)別。GET請求是將請求參數(shù)放在url中,而POST請求一般是將請求參數(shù)放在請求body中。
總結(jié):
通過Fiddler可以抓取請求和響應(yīng)參數(shù),通過對參數(shù)進(jìn)行分析,可以定位是前端還是后臺問題。例如我們在測試登錄接口時,輸入了正確的手機(jī)號和密碼,但前端提示“請輸入正確的用戶名和密碼”;僅僅通過界面提示我們只能描述bug表象,但不能分析出問題原因。假設(shè)通過抓包我們發(fā)現(xiàn)是由于前端參數(shù)名錯誤或參數(shù)值為空,從而導(dǎo)致后臺報錯。這個時候我們將bug指向前端開發(fā)人員,并將參數(shù)數(shù)據(jù)和接口文檔中對應(yīng)的報文數(shù)據(jù)作為附件上傳,是不是可以提高bug的解決效率呢?Fiddler在實際的功能測試中有很大的作用,一方面幫助我們更好的了解某個業(yè)務(wù)中客戶端和服務(wù)器端是通過哪些接口進(jìn)行請求的,從而更好的了解代碼邏輯;另一方面,我們還可以通過響應(yīng)數(shù)據(jù)判斷哪里出現(xiàn)了問題,例如可能服務(wù)器程序掛了,導(dǎo)致前端報“服務(wù)器故障”,這時我們通過抓包發(fā)現(xiàn)響應(yīng)數(shù)據(jù)返回502,這時我們可以手動去重啟服務(wù)或是聯(lián)系運(yùn)維重啟服務(wù),從而提高問題的解決效率。
關(guān)于Python爬蟲代理工具Fiddler是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
本文名稱:Python爬蟲代理工具Fiddler是什么-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article2/doddoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、外貿(mào)建站、用戶體驗、云服務(wù)器、網(wǎng)站排名、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容