HTTP協議數據包

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:此博客是博主的學習記錄過程,如有錯誤煩請大佬們糾正。

部分參考資料來源於其他博主