簡介:由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:此部落格是博主的學習記錄過程,如有錯誤煩請大佬們糾正。
部分參考資料來源於其他博主