1,HTTP Header介紹
????HTTP 請求中有Header拆融,HTTP 響應中也有Header凌那。使用 Fiddler的Raw選項卡可以看到完整的Header。
????Header的語法格式是“key:value”梧税,一行一個Header。每一個Header都有特殊的作用称近,在Fiddler 中可以查看完整的Header第队。
????使用Fiddler 能很方便地查看HTTP 請求 Header。選中一個HTTP請求煌茬,單擊 Inspectorstab -> Request tab->Headers斥铺,
2,Cache相關Header
????HTTP請求和HTTP響應中有很多用于緩存的Header
????HTTP 緩存是指當 Wcb 請求拒達緩存時坛善。如果本地有“已緩存的”副本晾蜘,就可以從本地存儲設備而不是從原始服務器中提取這個文檔邻眷。
3,Cookies
????Cookie 是 種HTTP Header剔交,是HTTP中非常重要的內容肆饶,它由 key-valwe 的形式組比如ip_country=CN。
????測覽器肥Cookie 通過 HTTP 請求中的“Cookie:header”發(fā)送給 Web 服務晉岖常,Web 服各器通過HTTP 前應中的“Set-Cookie:header”把Cookie發(fā)送給瀏覽器驯镊。
4,Accept
????Accept表示瀏覽器客戶端可以接受的媒體類型竭鞍。
????例如板惑。Accept:text/html代表瀏覽器可以接受服務器返區(qū) html,也就是我們適常說的
????html文檔偎快。通配符*代表任意類型 創(chuàng)如Accept:text/html,*/*.q=0.8 代表瀏覽器可以處理所有的類型冯乘。 一般瀏覽器客戶端價 Web 服務器發(fā)送的都是這個。
5晒夹,Accept-Encoding
????Accept-Encoding跟壓縮有關裆馒,瀏覽器發(fā)送HTTP 請求給 Web 服務,HTTP 請求中的Header 有Accept-Encoding;gzip.deflate(告訴服務器,瀏覽器支持gzip 壓縮)丐怯。
6喷好,Accept-Language
????Accep-L_=guage的作用是瀏望器聲明自己樓受的語言,
????語言跟字符集的區(qū)別在于读跷;中文是語言梗搅,中文有多種字符集,比如big5舔亭、gb2313些膨、gbk等示例如下:Accept-Language:en-US,en;q=0.8.zh-CN;q=0.6q=0.4,zh-TW;q=0.2
7蟀俊,User-Agent
????User-Agent的作用是瀏覺器用來告訴服務器钦铺,客戶端使用的操作系統(tǒng)及版本、CPU類型肢预、瀏覽器及版本矛洞、瀏覽器渲染引擎、瀏覽器語言烫映、瀏覽器插件等沼本。
????User-Agent:(Windows NT 10.0;wow64; rv:40.0) Gecko/20100101 Firefox/40.co Drer-kzontr
????這個代表客戶端用的是64位win10系統(tǒng),F(xiàn)irefox是40.0版本锭沟。
????假如用手機的APP訪問網(wǎng)站抽兆,APP 中的 HTTP 請求會包含如下的
????User-Agent:(Linux: D; Android 6.0:Redmi note 4 miui/ V8.5.2.0.
????這個User-Agent表示客戶端用的是紅米 Note 4,Android 6.0版本族淮。
????如果我們想模擬各種不同的客戶端辫红,只需要修改User-Agent凭涂,就可以偽裝成各種客戶端。
8贴妻,實例:Fiddler修改 User-Agent切油,偽裝客戶端
Fiddler可以幫我們修改 User-Agent,這樣就能偽裝成任何客戶端名惩。操作步驟如下澎胡,
(1)啟動 Fiddler,單擊 Rules>User-Agents娩鹉,選擇iPhone6攻谁。
(2)打開瀏覽器,輸入www.taobao.com弯予,可以看到淘寶的頁面變成了移動版的淘寶頁面巢株。
(3)在Fiddler中,我們可以查看 User-Agent 的值如下:
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4
9熙涤,Referer
????HTTP協(xié)議頭中的 Referer 主要用來讓服務器判斷來源頁面阁苞,即用戶是從哪個頁面來的。
????網(wǎng)站通常用其來統(tǒng)計用戶來源祠挫,看用戶是從搜索頁面來的那槽,還是從其他網(wǎng)站鏈接過來的,或是從書簽等訪問的等舔,以便合理定位網(wǎng)站骚灸。
????Referer有時也被用作防盜鏈,即下載時判斷來源地址是不是在網(wǎng)站域名之內慌植,否則就不能下載或顯示甚牲。很多網(wǎng)站,如天涯就是通過 Referer 頁面來判斷用戶是否能夠下載圖片的蝶柿。
10丈钙,Connection
????從HTTP/1.1起,系統(tǒng)默認都開啟了 Connection:Kecp-Alive交汤,保持連接特性雏赦。
????HTTP協(xié)議是基于TCP協(xié)議的。當一個網(wǎng)頁完全打開后芙扎,客戶端和服務器之間用于傳輸 HTTP 數(shù)據(jù)的TCP連接不會關閉:如果客戶端再次訪問這個服務器上的網(wǎng)頁星岗,將會繼續(xù)使用這一條已經(jīng)建立的連接。
????Kecp-Alive不會永久保持連接戒洼,它有一個保持時間俏橘,可以在不同的服務器軟件(如Apache)中設定這個時間。
11圈浇,HOST
????Host這個 Header 是必需的寥掐,它的作用是指定被請求的主機和端口號例获,它通常從HTTPURL中提取出來。
????實例:我們在瀏覽器中輸入https://www.cnblogs.com/tankxiao/曹仗,瀏覽器發(fā)送的 HTTP請求中就會包含Host 的Header榨汤,
????例如Host:www.cnblogs.com。此處使用了默認端口80怎茫。如果指定了端口號收壕,例如我們在瀏覽器中輸入http://tankapi.vicp.io:15375/,則 Header變?yōu)镠ost:tankapi.vicp.io:15375.
12轨蛤,F(xiàn)iddler查看HTTP響應Header