HTTP常見請求頭屬性


以百度為例

GET /favicon.ico HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
Accept: image/webp,image/apng,image/*,*/*;q=0.8
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: image
Referer: https://www.baidu.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
Cookie: BIDUPSID=A25EA168B55DD7B4FB0A6342CA748B8C; PSTM=1576809266; BD_UPN=12314753; BAIDUID=A25EA168B55DD7B457BA8613C76F2D5C:SL=0:NR=10:FG=1; sugstore=0; sug=3; ORIGIN=0; bdime=0; BDUSS=k0ODlSS09zUVFTenR5ZWVnd2ZrNE5wV3RGVTdJcFR1aWN3b3Y4Uzh5Y0lQTWRlSVFBQUFBJCQAAAAAAAAAAAEAAACuVu1KQ0pBbWF0ZXVyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAivn14Ir59eSj; COOKIE_SESSION=11537_0_9_6_7_50_1_1_9_7_99_0_0_0_30_0_1595386282_0_1595397789%7C9%230_0_1595397789%7C1; BDUSS_BFESS=k0ODlSS09zUVFTenR5ZWVnd2ZrNE5wV3RGVTdJcFR1aWN3b3Y4Uzh5Y0lQTWRlSVFBQUFBJCQAAAAAAAAAAAEAAACuVu1KQ0pBbWF0ZXVyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAivn14Ir59eSj; BD_HOME=1; delPer=0; BD_CK_SAM=1; PSINO=5; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; H_PS_645EC=6edcKRnz3eq3%2FGZkOSf6G1deQokMgt%2F%2BOIZog1%2Baj7nECxrvOXSSE0XyxwuA%2ByGVqan%2B; H_PS_PSSID=32288_1450_32359_32327_32045_31640_22157

 

1) HOST

請求頭指明了請求將要發送到的服務器主機名和端口號。

如果沒有包含端口號,會自動使用被請求服務的默認端口(比如HTTPS URL使用443端口,HTTP URL使用80端口)。

HTTP、HTTPS等常用的默認端口號

2) Connection

客戶端或服務端用來告訴對方當前tcp連接的狀態

Connection:keep-alive 網絡連接就是持久的,不會關閉,使得對同一個服務器的請求可以繼續在該連接上完成。HTTP/1.1的請求默認

Connection:close 在響應結束后關閉連接,這是HTTP/1.0請求的默認值

3) prama

Pragma 是一個在 HTTP/1.0 中規定的通用首部,這個首部的效果依賴於不同的實現,所以在“請求-響應”鏈中可能會有不同的效果。它用來向后兼容只支持 HTTP/1.0 協議的緩存服務器,那時候 HTTP/1.1 協議中的 Cache-Control 還沒有出來。

注意:由於 Pragma 在 HTTP 響應中的行為沒有確切規范,所以不能可靠替代 HTTP/1.1 中通用首部 Cache-Control,盡管在請求中,假如 Cache-Control 不存在的話,它的行為與 Cache-Control: no-cache 一致建議只在需要兼容 HTTP/1.0 客戶端的場合下應用 Pragma 首部。

4) Cache-Control

對緩存進行控制,如一個請求希望響應返回的內容在客戶端要被緩存一年,或不希望被緩存就可以通過這個報文頭達到目的

Cache-Control: no-cache 在發布緩存副本之前,強制要求緩存把請求提交給原始服務器進行驗證(協商緩存驗證)。

6) User-Agent

服務器端和客戶端腳本都能訪問它,它是瀏覽器類型檢測邏輯的重要基礎.該信息由你的瀏覽器來定義,並且在每個請求中自動發送 

7)Accept 

請求報文可通過一個“Accept”報文頭屬性告訴服務端,客戶端接受什么類型的響應。 
如下報文頭相當於告訴服務端,客戶端能夠接受的響應類型僅為純文本數據

Accept:text/plain 

通配符 * 代表任意類型。如下代表瀏覽器可以處理所有類型

   Accept: */*

Accept屬性的值可以為一個或多個MIME類型的值(描述消息內容類型的因特網標准, 消息能包含文本、圖像、音頻、視頻以及其他應用程序專用的數據)

常用的Accept屬性

8) Referer
表示這個請求是從哪個URL過來的,假如你通過百度搜索出一個商家的廣告頁面,你對這個廣告頁面感興趣,鼠標一點發送一個請求報文到商家的網站,這個請求報文的Referer報文頭屬性值就是 https://www.baidu.com/

9) Accept-Encoding

瀏覽器客戶端用來告訴服務器能接受什么編碼格式,包括字符編碼、壓縮方式等

例如:Accept-Encoding:gzip, deflate

10) Accept-Language

瀏覽器客戶端用來告訴服務器能接受什么語言。

例如:Accept-Language:zh-CN,zh;q=0.9

11) cookie

客戶端的Cookie就是通過這個報文頭屬性傳給服務端的,如下所示:

Cookie: $Version=1; jsessionid=5F4771183629C9834F8382E23 

jsessionid就是用來判斷當前用戶對應於哪個session。換句話說服務器識別session的方法是通過jsessionid來告訴服務器該客戶端的session在內存的什么地方。(當然也可以通過重寫URL的方式將會話ID附帶在每個URL的后面,在禁用cookie的時候可以用這個方法)。

Jsessionid只是tomcat的對sessionid的叫法,其實就是sessionid;在其它的容器也許就不叫jsessionid了。

cookie、session、sessionid 與jsessionid

 

參考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP


免責聲明!

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



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