HTTP消息報文之請求報文

HTTP消息報文之請求報文

在這裏插入圖片描述
請求頭出現在請求報文中,用於客戶端將附加信息告知服務端。

Host

表示請求的主機和端口。
例如 Host: www.pinginglab.net,該地址可以是域名也可以是 ip 地址,默認端口爲80。

User-Agent

"用戶代理"用 於將客戶端的操作系統和瀏覽器信息告知服務器,服務端可以根據這個字段,判斷並統計終端用戶的類型。
很多安全軟件可以僞造這個字段,欺騙服務器。

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

Referer

表示從哪個鏈接跳轉到此頁面的,包含一個 URL。當我們從一個頁面跳轉到另外一個頁面時,一般會有 Referer 信息。
Referer:www.baidu.com 則代表通過百度頁面跳轉過來。

Origin

跟 Referer 類似,表示從哪個網站(域)跳轉過來的,Referer 存在各種請求方法中,而 Origin 只存在 POST 請求,相比 Referer,更加安全,不會攜帶參數包括賬號密碼。

Referer: https://www.baidu.com/link?url=s8VrysxSnahbDF8jDHp-yx7bIpQOy2oMNqZBD4o4FlyUymCOt1HtkzIH87Qng7XQ&wd=&eqid=9988e0c800015284000000065a6591d5

Origin: http://www.pinginglab.net

Origin 存在 POST 方法中,用於解決 CSRF 跨站請求攻擊,服務器通過 Origin 判斷是否合法請求,拒絕一切Origin 字段爲外站的請求。

Cookie

用於記錄客戶端的身份信息,例如通過 cookie 可以登錄網站。主機第一次訪問一個網站頁面時是沒有 cookie 信息的,服務器爲了記錄主機信息和區分不同客戶端會生成不同的 cookie。另外 cookie 是有時效性的,關閉瀏覽器或超過規定時間會失效。客戶端再次訪問時,就需要攜帶自己的 cookie 信息。
HTTP 是無狀態協議,而通過引入 cookie,可以支持會話管理(session)。cookie 是一個字段,而 session 是一個概念。

Cookie: MARK-MANGE-GUIDE=true; online-uuid=30BCA95C-xx27-9280-xxA4-5704xxx41588xx;

Cookie: sysauth=daaeca86ed3e72da4d9fb68cad1002f7

Range

用於分塊請求實體內容,例如一個較大的文件,通過 range 多線程下載。

Range:bytes=0~100
//下載前100字節
Range:bytes=100~200
//下載200字節

x-forward-for

表示客戶端的 IP 地址,一般稱爲 “XXF” 頭,服務端通過這個頭可以知道客戶端的真實或代理 IP;攻擊者也可以通過這個頭,僞造源 IP 地址,欺騙服務端。
例如,真實訪問 ip 是100.1.1.1
但是 xxf:200.2.2.2
則服務端會以 200.2.2.2 爲準。

Accept

表示客戶端能夠接收哪些文件類型(MIME)。

Accept: text/html
Accept: image/webp,image/apng,image/*,*/*;q=0.8   //q表示優先級
Accept: application/json, text/javascript, */*; q=0.01

常見MIME文件類型
在這裏插入圖片描述

Accept-Charset

表示客戶端能夠接受的字符集。

Accept-Charset: UTF-8

Accept-Encoding

表示客戶端能夠接受的編碼。

Accept-Encoding: gzip, deflate

Accept-Language

表示客戶端能夠接受的語言。

Accept-Language: zh=CN, zh; q=0.9, en; q=0.8, zh-TW; q=0.7

Authorization

Web認證信息。例如登錄無線路由器時進行認證。

Expect

期待服務器的特定行爲。

From

用戶的電子郵箱。

if-Match

比較實體標記。

if-Modified-Since

比較資源的更新時間。

if-Unmodified-Since

比較資源的更新時間(與if-modified-since相反)。

if-None-Match

比較實體標記。

if-Range

資源未更新時發送實體字節範圍請求。

Max-Fowards

最大傳輸跳數。

Proxy-Authorization

代理服務器要求客戶端的認證信息。

TE

傳輸編碼優先級。

DNT

Chrome瀏覽器提供的安全功能,用於解決流量追蹤問題。

DNT
//1代表用戶不想被第三方網站追蹤,0代表接受追蹤,null代表用戶不置可否

Upgrade-Insecure-Requests

Chrome瀏覽器首先提出的安全功能,升級非安全請求,可以實現從 http 到 https 的安全訪問。

Upgrade-Insecure-Requests: 1

//0表示關閉
//1表示開啓

X-Requested-With

X 開頭的字段是沒有寫在 RFC 文檔裏的,一般是組織自定義的,不是所有的瀏覽器服務器都支持的。

如果無該頭信息項,取出的是未定義的值,即null,則說明是傳統請求;
如果存在該頭信息項,值是 XMLHttpRequest 則說明是 Ajax 請求。

X-Requested-With: XMLHttpRequest

X-CSRF-Token

用於解決 CSRF 跨站請求僞造,通過 Token 令牌解決。

X-CSRF-Token: eV9u_cnOFwXWWvuxMWwY8SH-s6HT3mFtnTkeNUvuArQ

通過谷歌瀏覽器的開發者工具,也可以對字段進行分析。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章