Fiddler 面試常見問題和功能?


1、為什么能抓包

  代理服務器,模擬客戶端向服務端發送請求。

2、抓包

    2.1抓APP的包,手機和電腦在同一個局域網,然后cmd命令ipconfig查看IP,手機代理服務器設置為IP地址,端口號8888,保存

    2.2抓web的包;三大設置,1:安裝證書-:tools-options-https,全部勾選

                2:自動解壓HTTP響應--點擊decode,這樣就會自動解壓HTTP響應,否則我們看到的HTTP響應是亂碼

                3:隱藏”Tunnel to “請求,步驟:rules-Hide CONNECIS,這樣Fiddler就不會捕獲大量無用的握手驗證請求。我們抓包是為了看HTTP請求和響應的數據內容,而不關心HTTPS的通信是怎么建立的。

    2.3抓HTTP的包,

    2.4抓HTTPS的包,需要下載安裝信任CA證書

    2.5 抓不到包的原因:前端設置隱藏,所以抓不到包

3、改包--下斷點

  方法1,rules--before requests改請求,rules--after responses改響應

  方法2,左下角黑色輸入框,bpu+域名--該請求,bpafter+域名--改響應

  方法3,左下角點一下,紅色“T”圖標是 改請求,再點一下“D”圖標是 改響應

4、分析包

  1、判斷前后端是否做了校驗,前端是抓不到包,友好提示,后端根據請求內容返回正確的響應信息

  2、定位BUG,用Fiddler抓包,請求有問題就是前端問題,響應有問題就是后端的問題;

          看請求參數和響應參數,請求參數有問題是前端問題,響應參數有問題就是后端問題;

            去看下數據庫,如果和數據庫不一致也是后端的問題。

4、弱網測試

  1、Fiddler中script,找到上傳和下載的兩行代碼(搜索kb),修改網速,然后保存就可以了

  2、項目比較急的話,會用手機自帶的2G、3G、4G、5G和WiFi進行測試

  3、還有騰訊的qnet,修改網速,保存也可以

5、篩選

  1、點擊Filters,

  2、點擊show only the following hosts,

  3、勾選use Filters,

  4、輸入框填寫要抓包的域名,如果要抓多個位置的包,填寫多個域名,多個域名用英文分號 ; 隔開

  5、點擊actions,就可以篩洗了

6、埋點

  用Fiddler抓取埋點字段,在用戶行為管理系統中查詢該字段,以及數據庫查詢埋點字段,查到就是埋點成功,查不到埋點失敗

7、mock數據

  7.1、使用場景?

    1、無法控制第三方系統接口的返回,返回的數據不滿足要求

    2、依賴系統還未開發完成,就需要對被測系統進行測試

    3、模擬一些異常場景,比如服務器崩潰,返回503狀態碼

  7.2、步驟?

    1、創建一個tx文件,將目標響應數據寫入進去,注意:保存格式為utf-8,否則響應數據可能會亂碼

    2、點擊目標請求---點擊右側的’autoresponder‘--'enable rules'

    3、點擊add rules,rule editor 下方選擇 find a file

7、常見的content-type:文本格式,圖片格式,應用格式

    文本格式:text/html:HTML格式

         text/plain:純文本格式

         text/xml:XML格式

    圖片格式:image/gif:gif格式

         image/jpeg:jpg格式

         image/png:png圖片格式

    應用: application/xhtml+xml:XHTML格式

       application/xml:XML格式

       application/atom+xml:Atom XML聚合格式

       application/json:JSON格式

       application/pdf:pdf格式 

       application/msword:word文檔格式

       application/octet-stream:二進制流數據(如常見的文件下載)

       application/x-www-form-urlencoded:<form encType=" ">中默認的encType,from表單數據被編碼為key/value格式發送到服務器(表單默認的提交數據的格式) 

8、HTTP和HTTPS的區別

    https是一種加密了的http協議,比http協議安全,通過ssl+http實現加密傳輸的。

  1、  http協議需要用到CA信任證書,一般免費的比較少,因而需要一定的費用。

  2、  http是超文本傳輸協議,信息是明文傳輸,HTTPS則是具有安全性的ssl加密傳輸的協議。

  3、  HTTP和HTTPS使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443.

  4、  HTTP的連接很簡單,是無狀態的;HTTPS是由ssl+http協議構建的,可進行加密傳輸,身份認證的網絡協議,比http更安全。

9、常見狀態碼

  2XX 請求成功

  3XX 重定向       301用久重定向    302臨時重定向
  4XX 客戶端錯誤    403 對請求資源的訪問,被服務器拒絕了    404 服務器上無法找到請求的資源
  5XX 服務器錯誤    500 服務器遇到錯誤,無法完成請求      503 服務器停機,維護,暫時的狀態

10、HTTP請求方法

  get  

  post

  put

  head

  delete

11、TCP和UDP的區別

  

TCP: 無連接,不可靠傳輸,不使用流量控制和擁塞控制;支持一對一,一對多,多對一或多對多交互通信;面向報文;首部開銷小,僅8字節;適用於實時應用(IP電話、視頻會議、直播等)
UDP :面向連接;可靠傳輸,使用流量控制和擁塞控制;只能是一對一通信;面向字節流;首部最小20字節,最大60字節;適用於要求可靠傳輸的應用,例如文件傳輸

  TCP向上層提供面向連接的可靠服務 ,UDP向上層提供無連接不可靠服務。雖然 UDP 並沒有 TCP 傳輸來的准確,但是也能在很多實時性要求高的地方有所作為,對數據准確性要求高,速度可以相對較慢的,可以選用TCP

12、一次完成的HTTP過程 

  1、 對www.baidu.com這個網址進行DNS域名解析,得到對應的IP地址

  2、 根據IP地址,找到對應的服務器,發起TCP的三次握手

  3、 建立TCP連接后,發起HTTP請求

  4、 服務器響應HTTP請求,瀏覽器得到html代碼

  5、 瀏覽器解析html代碼,並請求html代碼中的資源(如jscss圖片等)(先得到html代碼,才能去找這些資源)

  6、 瀏覽器對頁面進行渲染呈現給用戶

 

13、TCP的三次握手

  1、要求建立聯機,瀏覽器發送標有SYN的數據包給web服務器已讀,

  2、確認聯機信息,web服務器返回標有SYN/ACK的數據包給瀏覽器,

  3、確認建立聯機成功,瀏覽器發送標有ACK的數據包給web服務器

14、GETPOST的區別

  1GET在瀏覽器回退是無害的,而POST會再次提交請求

  2GET產生的URL地址可以被BookMark(給……保存為書簽),而Post不可以

  3GET請求會被瀏覽器主動給cache緩存,post不會,除非手動設置

  4GET請求只能進行URL編碼,而POST支持多種編碼方式

  5GET請求參數會被完整保留在瀏覽器歷史記錄里,而POST中的參數不會被保留

  6GET請求在URL中傳輸的參數是有長度限制的,而POST沒有

  7、對參數的數據類型,GET只接受ASCII碼,而POST沒有限制

  8POSTGET更安全,因為GET參數直接暴露在URL上,所以不能用來傳遞敏感信息

  9GET參數通過URL傳遞,POST放在RequestBody(請求體)中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM