第三篇 Fiddler數據包分析

上一篇博文寫完了Fiddler的配置,本篇講講如何用Fiddler進行數據包的分析,下圖是抓到的數據包區域,對這些區域的可見字段進行解析以下, 以便了解這些字段的含義html

1.  瞭解數據包區域的字段含義 

#:順序號,按照抓包的順序從1遞增web

Result:HTTP狀態碼      跨域

Protocol:請求使用的協議,如HTTP/HTTPS/FTP等瀏覽器

HOST:請求地址的主機名或域名緩存

URL:請求資源的位置服務器

Body:請求大小cookie

Caching:請求的緩存過時時間或者緩存控制值併發

Content-Type:請求響應的類型app

Process:發送此請求的進程ID性能

Comments:備註 

Custom:自定義值

 2. 查看數據包的具體內容

雙擊擊具體的一條數據包能夠在右側菜單點擊Insepector查看詳細內容。分爲請求(即客戶端發出的數據)和響應(服務器返回的數據)兩部分。

3. Request Header

下面是對Request Header區域各個item作介紹

請求方式:GET 

協議: HTTP/1.1

1. Cache 頭域

  if-Modified-since:緩存

  if-None-Match:可提升性能(在Response中添加ETag信息,客戶端再次請求資源,Request中加入if-None-Match(ETag的值),服務器驗證ETag,若沒改變返回狀態碼304,有改變,返回狀態碼200)

  Pragma:防止頁面被緩存

  Cache-Control:Response—Request遵循的緩存機制

  public:能夠被任何緩存所緩存

  private:內容只緩存在私有緩存中

  no-cache:全部內容都不會被緩存

2. Client 頭域

  User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36 (告知服務器客戶端使用的操做系統與瀏覽器的名稱和版本)
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 (瀏覽器端能夠接受的媒體、文件類型)
  Accept-Encoding: gzip, deflate (指定壓縮方法,是否支持壓縮,支持什麼壓縮方法(gzip、deflate))
  Accept-Language: zh-CN,zh;q=0.9 (瀏覽器申明本身的接收語言)

  Accept-chareset:(瀏覽器申明本身接收的字符集。如gb2312,UTF_8)

3. Cookies 頭域

  有的請求不發送Cookies,有的請求有Cookies。

  目的:將cookie值發送給服務器

 4. Entity頭域

  Content-Length:發送給HTTP服務器的數據長度

  Content-Type:決定文件接收方將以什麼形式、什麼編碼讀取此文件

5. Security 頭域:

  Upgrade-Insecure-Requests: 1

6. Transport 頭域:
  Host: uat.casserver.yxqiche.com(Host:發送請求時,該報頭域是必需的。主要用於指定被請求資源的Internet主機和端口號,一般從HTTP URL 中提取出來)
  Proxy-Connection: keep-alive(Connection:當網頁打開完成後,客戶端和服務器之間用於傳輸HTTP數據的TCP鏈接是否關閉。keep-alive表示不會關閉,客戶端再次訪問這個服務器上的網頁,會繼續使用這一條已經創建的鏈接;close表示關閉,客戶端再次訪問這個服務器上的網頁,須要從新創建鏈接。)

  connection:Keep—alive            TCP鏈接不會關閉

  connection:close                     一個Request完成後,TCP鏈接關閉

7. Miscellaneous頭域

  Referer:提供了Request的上下文信息,告訴服務器我是從哪一個連接過來的

  A------>B(B的服務器從Referer中統計有多少用戶是從A過來的)

4. Response Header

1. Cache頭域

  Date:生成消息的具體時間和日期

  Expires:瀏覽器在指定過時時間內使用本地緩存

2. Cookie/Login頭域

  P3P:用戶跨域設置cookie,能夠解決iframe跨域訪問cookie的問題

  Set-Cookie:重要的header,用於把cookie發送到客戶端瀏覽器,每個寫入cookie都會生成一個set-cookie

3. Entity頭域

  ETag:與if-None-Match配合使用

  Last-Modified:用於指示資源的最後修改日期和時間

  Content-Type:Web服務器告知瀏覽器本身響應對象的類型和字符集

  Content-Length:指明實體正文長度,以字節方式存儲的十進制數字表示。在數據下行中,要預先在服務器中緩存全部數據,而後全部數據一併發給客戶端

  Content-Encoding:Web服務器代表本身用了什麼壓縮方式(gzip、deflate)壓縮響應中的對象

  Content-Language:服務器告知瀏覽器本身響應的對象語言

4. Miscellaneous頭域

  Server:指明HTTP服務器的軟件信息

  X-Powered-By:代表網站是用什麼技術開發的

  X-AspNet-Version:若是網站是用Asp/Net開發的,這個header用來代表Asp/Net的版本

5. Transport頭域

  connection:Keep—alive            TCP鏈接不會關閉

  connection:close                     一個Request完成後,TCP鏈接關閉

6. Location頭域

  Location:用於重定向一個新的位置,包括新的URL地址

5. HTTP認證過程

  1. 客戶端發送HTTP Request給服務器;

  2. Request中未包含Authorization header,服務器會返回一個401錯誤給客戶端,且在Response中的header「www-Authenticate」中添加信息;

  3. 客戶端將用戶名和密碼以base64加密後,放在Authorization中發送給服務器,認證成功;

  4. 服務器將Authorization header中的用戶名和密碼去除,進行驗證。若是驗證經過,將根據請求發送資源給客戶端;

  HTTP OAuth認證:OAuth對於http來講,就是放在Authorization header中的不是用戶名密碼,而是一個token(令牌)。

  客戶端的使用:客戶端若要跟「使用基本認證的網站」進行交互,將用戶名密碼加載Authorization header中便可。

6.

      經過上面的截圖,能夠看到每一個請求的前面都有一個小圖標,不一樣的圖標表明瞭不一樣的含義,整理以下:

  [轉]https://www.cnblogs.com/Nick1994/p/8491631.html   感謝願意分享的人,你是最棒的!

  • 這裏寫圖片描述 請求發送到服務器
  • 這裏寫圖片描述 從服務器下載響應結果
  • 這裏寫圖片描述 請求在斷點處被暫停
  • 這裏寫圖片描述 響應在斷點處被暫停
  • 這裏寫圖片描述 請求使用HTTP HEAD 方法,響應沒有body(內容)
  • 這裏寫圖片描述 請求使用HTTP POST 方法
  • 這裏寫圖片描述 請求使用HTTP CONNECT 方法;使用HTTPS協議創建鏈接通道
  • 這裏寫圖片描述 響應是HTML格式
  • 這裏寫圖片描述 響應是圖片格式
  • 這裏寫圖片描述 響應是腳本文件
  • 這裏寫圖片描述 響應是CSS文件
  • 這裏寫圖片描述 響應是XML文件
  • 這裏寫圖片描述 響應是JSON文件
  • 這裏寫圖片描述 響應是音頻文件
  • 這裏寫圖片描述 響應是視頻文件
  • 這裏寫圖片描述 響應是Silverlight applet
  • 這裏寫圖片描述 響應是Flash applet
  • 這裏寫圖片描述 響應是字體
  • 這裏寫圖片描述 普通響應成功
  • 這裏寫圖片描述 響應是HTTP/300,301,302,303,307轉向
  • 這裏寫圖片描述 響應是HTTP304(無變動): 使用被緩存的版本
  • 這裏寫圖片描述 響應須要一個客戶端憑證
  • 這裏寫圖片描述 響應是一個Server錯誤
  • 這裏寫圖片描述 會話被客戶端、Fiddler或者Server終止
相關文章
相關標籤/搜索