HTTP協議數據包
簡介:由w3c制定的一種網絡應用層協議,定義了瀏覽器與web服務器之間通信時所使用的數據格式。
0x00 數據包格式
1、請求行:請求類型/請求資源路徑、協議的版本和類型
2、請求頭:一些鍵值對,一般有w3c定義,瀏覽器與web服務器之間都可以發送,表示特定的某種含義
3、空行:請求頭與請求體之間用一個空行隔開
4、請求體:要發送的數據(一般post方式會使用)如:UserName=123&PAssWord=123
0x01 請求頭介紹
Hsot:表示請求的服務器域名/ip地址+端口
User-Agent:表示用戶本地系統瀏覽器環境
Accept:表示瀏覽器可解析的應用環境
Accept-Language:表示瀏覽器可解析的語言類型
Accept-Encoding:表示瀏覽器可解析的編碼方式
Referer:表示請求頁面是從哪裡來的
Cookie:表示服務器和瀏覽器之間的會話轉檯,該狀態可以表示用戶是否登陸過,一般都是服務器給配置的,具有時效性,只要失效就需要用戶重新登錄,會得到一個新的Cookie值,只要登錄成功之後,瀏覽器就會保存cookie,妹子去服務器請求都會帶上cookie,並且該cookie是需要在服務器中驗證的
X-forwarded-for:表示用戶真實ip
content-type:表示該請求數據的類型
0x02 響應包response
用戶發送的請求包到達服務器,服務器處理該請求,處理之後返回發送給用戶瀏覽器,講該結果成為響應包。
響應包=狀態行+響應報頭+空行+響應正文(響應內容)
響應報頭參數含義:
data:響應時間
server:服務器環境
content-length:響應數據包長度
connection:連接狀態
content-type:返迴響應數據類型,告訴瀏覽器該使用哪種方式去解析或打開蓋響應數據的內容
location:表示要跳轉到的頁面
set-cookie:表示服務器給瀏覽器設置的cookie值
0x03 狀態碼的分類,由3位數字組成:
1xx 表示服務器已接收到請求,並需要繼續處理
2xx 表示服務器已成功接收到請求,並處理了請求
3xx 表示重定向,url要跳轉到其他頁面去請求
4xx 表示用戶請求客戶端有問題
5xx表示服務器端內部錯誤
常見狀態碼:
200 表示請求已成功,請求所希望的響應頭或數據將響應返回
203 表示服務器已成功處理了請求,但返回的試題頭部元信息不是在原始服務器上有效的確定集合,而是來自本地或者第三方的拷貝
302 表示請求的資源現在臨時從不同的url響應請求,由於這一的重定向是臨時的,客戶端應繼續向原有地址發送以後的請求
304 表示如果客戶端發送了一個帶條件的get請求且請求已被允許,而文檔的內容並沒有改變
400 表示語義有誤,當前請求無法被服務器理解,或者請求的參數有誤
401 表示當前請求需要用戶驗證,該響應必須包含一個適用於被請求資源的信息頭用以詢問用戶信息
403 表示服務器已經理解請求,但是被拒絕執行,與401不同的事,身份驗證並不能提供任何幫助,而這個請求也不應該唄重複提交
404 請求失敗,請求所希望得到的資源未被在服務器上發現
500 服務器遇到一個未曾預料的狀況,導致了它無法完成對請求的處理,一般是服務器的程序碼出錯時出現
PS:此博客是博主的學習記錄過程,如有錯誤煩請大佬們糾正。
部分參考資料來源於其他博主