乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Fiddler實用教程

       nikybook 2016-01-07

      經(jīng)常有人說抓包抓包,很極客的感覺,其實就是利用工具分析網(wǎng)絡請求和響應而已。用工具,誰不會呢?對吧。恰好有個QA同學曾問我,怎么模擬出這種情況,怎么模擬出那種情況,等寫完就把博客鏈接發(fā)給她好了。

      本文介紹的工具是 Fiddler,它能夠在本機和服務端之間建立一個代理,通過這個代理,可以對所有經(jīng)過的請求和響應進行攔截、修改、分析等。理論上說,只要你使用的軟件支持代理,都可以用 Fiddler 進行攔截,包括瀏覽器、命令行等。

      類似的軟件有很多,比如 WireShark、HttpWatch 等,如果只是模擬發(fā)請求的話,Chrome 中有幾個插件也很不錯,比如 Postman、REST Client 等。

      基本術(shù)語

      會話(Session)

      不同于服務端的 Session,這里僅僅指一次HTTP請求而已。會話面板在工具左側(cè),如下圖所示。

      圖中顯示了三條請求,每一列的具體含義都很清晰,認識英文單詞就能懂了。

      只是左邊 # 號下的圖標,幫各位找了一下,見下圖。

      默認情況下,一旦開啟 Fiddler,就會走它的代理。有時候你想暫停這種行為,那請看到左下方有個狀態(tài)欄。

      單擊一下左邊的 Capturing,就能停止攔截,想再開啟,就再單擊一下。

      它的右邊是會話的來源,可以設置僅僅攔截瀏覽器發(fā)出的請求。

      再右邊有三種選擇:1、在請求發(fā)出之前進行斷點;2、在響應回來的時候進行斷點;3、不設斷點。

      審查(Inspector)

      隨便單擊一條會話,右側(cè)就會顯示詳細信息。

      題外話,我覺得教程的意義在于,當你對某種新事物不熟悉的時候,幫助你了解一下而已。tutorial 和 reference 之間是有點區(qū)別的。

      所以這里就挑一些足夠使用的 tab 來解釋一下。首先,這里有上下兩欄,上面是 Request,下面是 Response。

      Request 中有三個比較厲害的:

      • Inspectors:選中之后,可以詳細查看請求的 Headers、Cookies,并且可以對請求體格式化,以 WebForms、JSON、Raw 等方式查看。具體每種方式的區(qū)別可以自己感受一下。一般來說,想要查看請求的參數(shù)的話,WebForms 的方式就挺直觀的。

      • AutoResponder:這個地方可以模擬服務端返回值。顧名思義,當瀏覽器發(fā)出的請求滿足你設置的匹配條件的話,F(xiàn)iddler 就自動響應了,并不需要走網(wǎng)絡。

      • Composer:模擬向服務端發(fā)送請求,用于測試服務端接口是否正確。

      Response 中常用也列三個吧:

      • Headers:響應頭。比如 Content-Type、Access-Control-Allow-Origin 等這些屬性都在這個 tab 展示。

      • Cookies:查看由服務端帶回來的 cookie。

      • JSON:將返回的內(nèi)容以 JSON 格式顯示。這個很有用,特別是當服務端返回的內(nèi)容本身就是 JSON 的時候。

      QuickExec

      抱歉這么快就要講命令行,實在是因為它太有用了。它位于狀態(tài)欄的上方,有個 QuickExec 的提示,非常顯眼。

      其實,當你看到它的時候,就已經(jīng)會了第一個命令

      help

      輸入 help 會帶你到命令行的幫助頁,上面列舉了所有可用的命令。不是很多,而且都很直觀。這里同樣把常用的列一下。

      • sometext:高亮包含匹配文字的會話。比如 /foo 就可以把所有包含 /foo 的請求都找出來。

      其他的高亮功能還有:=(匹配請求方法或狀態(tài)碼)、@(匹配host)、select(匹配MIME)。

      • clear:清空會話面板。

      • keeponly:清空會話面板,僅保留指定的MIME類型。比如 keeponly json 就能篩選出所有返回 json 的會話。

      • go:放行所有的斷點。

      設置斷點

      按照之前介紹的,在狀態(tài)欄啟用斷點(無論是請求斷點,還是響應斷點)后,所有的請求都會中斷。

      事實上,一個網(wǎng)頁加載時,會觸發(fā)很多異步請求。甚至在加載完成后,也還會不停地發(fā)送異步請求,比如現(xiàn)在很流行的二維碼登錄頁面。攔截所有請求似乎顯得不太合適。

      而在上一節(jié)其實留了斷點的命令行沒有介紹。斷點即 breakpoint,所有跟斷點相關的都是以 bp 為前綴。

      • bpu:請求時斷點,比如 bpu /foo

      • bpafter:響應時斷點,比如 bpafter /foo

      • bps:攔截狀態(tài)碼,比如 bps 404

      • bpm:攔截方法,比如 bpm post

      用不帶參數(shù)的命令可以清除斷點,比如 bpafter 可以清除所有的響應斷點。

      url 的匹配方式是判斷“字符串是否包含”,比如 bpu /foo 會攔截所有包含 /foo 的請求。

      如果忘了這些命令,在命令行輸入 bp ,敲回車,就能看到提示了。bp is short for breakpoint,這個能記住嗎?

      模擬返回值

      想要模擬返回值,首先要設置響應斷點。

      bpafter /foo

      當滿足條件的響應回來時,選中該會話,就可以看到如圖所示的面板。選擇 Raw 視圖(其他也可以,Raw 可以修改更多的內(nèi)容),然后可以清楚地看到,服務端返回的內(nèi)容是

      {name: 'Jarvis', gender: 'M'}

      把上面的 M 修改成 F,然后單擊“Run to Completion”,就能把修改后的返回值送還給瀏覽器了。

      自動化呢?沒錯,人往往喜歡偷懶,如果每次要修改,豈不是很麻煩。

      • 選中想要攔截的請求,比如 /api/foo

      • 然后在 Request 面板選擇 AutoResponder

      • 再選擇 “Add Rule”

      • 在最下面的下拉框選擇 “Create New Response...”

      • 然后 “Save”

      此時會彈出一個對話框,跟 Response 面板的布局一樣,在上面可以編輯返回值。

      或者你直接把定義好的返回內(nèi)容保存成文件,在剛才那個下拉框中選擇該文件就行了。

      模擬請求

      右側(cè)的 Composer 窗口可以模擬發(fā)送請求。

      剛打開這個窗口的時候,應該是一片空白。你可以從左側(cè)會話列表拖一個會話過去,這樣就有預填的信息了,修改一下參數(shù),點“Execute”,piu,一條請求就發(fā)送出去了。

      接著在會話列表就可以查看服務端的返回值。

      小結(jié)

      其實 Fiddler 的官方文檔上已經(jīng)寫得很全了,我只是稍微結(jié)合了平時的使用經(jīng)驗,僅僅把常用的功能羅列一下,希望可以幫助各位更快上手。畢竟,磨刀不誤砍柴工。

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多