天天看點

接口測試之Fiddler+HTTP協定headers

一、 http header可以分為request headers和response headers,如下圖所示
接口測試之Fiddler+HTTP協定headers

header

二、什麼是User-Agent及 User-Agent的作用

1.什麼是User Agent

User Agent中文名為

使用者代理

,簡稱 UA,它是一個特殊字元串頭,使得伺服器能夠識别客戶使用的

作業系統

及版本、CPU 類型、

浏覽器

及版本、浏覽器渲染引擎、浏覽器語言、

浏覽器插件

等。

2.User Agent的作用

User-Agent:告訴HTTP伺服器, 用戶端使用的作業系統和浏覽器的名稱和版本

這也是用手機端浏覽器和電腦端打開浏覽器打開一個網站、論壇等,頁面顯示不一樣的原因。

三、使用不同浏覽器打開百度搜尋“測試”,用fiddler抓取User-Agent的值

1.使用360浏覽器打開百度搜尋測試

接口測試之Fiddler+HTTP協定headers

360浏覽器

2.使用chrome浏覽器打開百度搜尋測試

接口測試之Fiddler+HTTP協定headers

chrome浏覽器

對比後發現header區域client裡面User-Agent對應屬性不一樣,說明User-Agent屬性就是代表用戶端資訊,當使用者用浏覽器打開網址時候,就已經把浏覽器資訊發給了服務端,這樣服務端就能根據你的浏覽器屬性,傳回相應的資訊。

四、Reques header頁面分類
接口測試之Fiddler+HTTP協定headers

header頁面分類

Client解析:

1.Accept作用: 浏覽器端可以接受的媒體類型,

例如: Accept: text/html 代表浏覽器可以接受伺服器回發的類型為 text/html 也就是我們常說的html文檔

2.Accept-Encoding作用: 浏覽器申明自己接收的編碼方法,通常指定壓縮方法,是否支援壓縮,支援什麼壓縮方法(gzip,deflate)

例如: Accept-Encoding: gzip, deflate,br

3.Accept-Language作用: 浏覽器申明自己接收的語言。

例如: Accept-Language: en-us,zh-CN

4.User-Agent作用:告訴HTTP伺服器, 用戶端使用的作業系統和浏覽器的名稱和版本(可參看上面的第二點)

Cache解析:

接口測試之Fiddler+HTTP協定headers

Cache

If-Modified-Since作用: 把浏覽器端緩存頁面的最後修改時間發送到伺服器去,伺服器會把這個時間與伺服器上實際檔案的最後修改時間進行對比。如果時間一緻,那麼傳回304,用戶端 就直接使用本地緩存檔案。如果時間不一緻,就會傳回200和新的檔案内容。用戶端接到之後,會丢棄舊檔案,把新檔案緩存起來,并顯示在浏覽器中。

例如:If-Modified-Since: Fri, 14 Jul 2017 12:05:58 GMT

If-None-Match作用: If-None-Match和ETag一起工作,工作原理是在HTTP Response中添加ETag資訊。 當使用者再次請求該資源時,将在HTTP Request 中加入If-None-Match資訊(ETag的值)。如果伺服器驗證資源的ETag沒有改變(該資源沒有更新),将傳回一個304狀态告訴用戶端使用 本地緩存檔案。否則将傳回200狀态和新的資源和Etag. 使用這樣的機制将提高網站的性能

例如: If-None-Match: W/"7da8f49c1ab485215492ca5b0021b9ab"

Pragma作用: 防止頁面被緩存, 在HTTP/1.1版本中,它和Cache-Control:no-cache作用一模一樣,Pargma隻有一個用法, 例如: Pragma: no-cache

注意: 在HTTP/1.0版本中,隻實作了Pragema:no-cache, 沒有實作Cache-Control

Cache-Control作用: 這個是非常重要的規則。 這個用來指定Response-Request遵循的緩存機制。各個指令含義如下

Cache-Control:Public 可以被任何緩存所緩存()

Cache-Control:Private 内容隻緩存到私有緩存中

Cache-Control:no-cache 所有内容都不會被緩存

Miscellaneous解析:作用: 提供了Request的上下文資訊的伺服器,告訴伺服器我是從哪個連結過來的,比如從我首頁上連結到一個朋友那裡,他的伺服器就能夠從HTTP Referer中統計出每天有多少使用者點選我首頁上的連結通路他的網站。

例如: Referer: https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E6%B5%8B%E8%AF%95&oq=%25E6%25B5%258B%25E8%25AF%2595&rsv_pq=d2527424000367be&rsv_t=1d194x9V36wOncpjf09jagLe%2Fs9h87JUpiECB6kv3gjqNRFYRGIF9gtj2NY&rqlang=cn&rsv_enter=0&rsv_sug=1

Transport 解析

1.Connection:keep-alive  當一個網頁打開完成後,用戶端和伺服器之間用于傳輸HTTP資料的TCP連接配接不會關閉,如果用戶端再次通路這個伺服器上的網頁,會繼續使用這一條已經建立的連接配接

例如:  Connection: close  代表一個Request完成後,用戶端和伺服器之間用于傳輸HTTP資料的TCP連接配接會關閉, 當用戶端再次發送Request,需要重建立立TCP連接配接。

Host(發送請求時,該報頭域是必需的)作用: 請求報頭域主要用于指定被請求資源的Internet主機和端口号,它通常從HTTP URL中提取出來的

例如: 我們在浏覽器中輸入:http://www.guet.edu.cn/index.html    浏覽器發送的請求消息中,就會包含Host請求報頭域,如下:

Host:http://www.guet.edu.cn

文章來源參考 測試部落-萌貓君

繼續閱讀