常用的狀態碼/cookie/session/token的請求流程
當客戶端向服務端傳送⼀個請求後,服務端響應回覆返回給客戶端,在返回的資訊中會包含⼀個HTTP請求頭的狀 態碼資訊⽤以響應客戶端的請求。在⽹站https://http.cat中可以看⻅各個不同表情的狀態碼的顯示,如調⽤https:/ /http.cat/504就會顯示如下對應的資訊。
常⽤的狀態碼具體為:
200 請求成功
201 created :新增資源成功
204 No Content :刪除資源成功
301 永久重定向(京東為例www.360buy.com永久重定向到www.jd.com)
302 臨時重定項
400 Bad Request 客戶端請求錯誤
所有的400,都是客戶端的問題:
第1種:請求頭不對
第2種:請求引數不對
401 Unauthorized ⽆許可權訪問該系統
基本認證方式:認證完成就有許可權訪問該系統
403 Forbidden 有許可權但是禁⽌訪問
404 請求的資源不存在
405 不被允許的請求⽅法
特殊場景,四個請求方法都提供了,操作的時候還是出現了405,需要把IP地址加入到安全體系的白名單
415 只有請求頭不對
500 伺服器內部錯誤
504 GateWay Timeout閘道器超時(不一定是程式設計師的程式碼的問題,也可能是第三方的問題)
4個常用的的請求頭:
cookie: 反爬蟲 ,認證授權
referer:請求目標地址是從哪裡來的
content-type:代表返回的響應資料是什麼樣的資料格式
user-agent:代表的是訪問目標伺服器,是通過什麼來訪問
以下以拉勾網職位搜尋為例:
二、COOKIE/ SESSION/ TOKEN請求流程
Set-cookie:服務端把生成的認證憑證資訊返回給客戶端
HTTP是一個無狀態的協議,所以也就導致了COOKIE技術的發展,通過COOKIE能夠記下使用者操作的行為狀態,但是COOKIE它是儲存在客戶端的,所以不安全,為了解決安全問題,SESSION誕生,SESSION它是儲存在服務端,相對來說比較安全。後面移動網際網路誕生,就有了TOKEN,TOKEN本質上是SESSION原理實現的,它成為一個令牌,TOKEN的實現技術是JWT的技術。
COOKIE:
1、儲存在客戶端 2、不安全
COOKIE的請求流程:
1.客戶端輸入賬戶密碼登入成功
2.在服務端生成COOKIE的資訊,通過響應頭中的SET-COOKIE把生成的COOKIE返回給客戶端
3.客戶端在下次請求的時候,通過請求頭中的cookie把返回的cookie帶上傳送給服務端,服務端進行內部驗證
SESSION的請求流程:
1.客戶端輸入賬戶密碼登陸成功
2.在服務端會生成SESSIONID,同時儲存在服務端本地,通過響應頭中的Set-cookie把生成的SESSIONID返回客戶端
3.客戶端接收到SESSIONID後
4.客戶端再次請求服務端(比如訪問個人主頁),會在請求頭的cookie中帶上SESSIONID傳送給服務端
5.服務端接收到客戶端傳送過來的SESSIONID,與儲存在服務端本地的SESSIONID之間進行對比,如果一致,允許訪問個人主頁,如果不一致,就會重定向到登入的頁面
TOKEN特點:
1.每次登入成功後,生成的TOKEN都是不一樣的
2.返回的token是一個隨機的字串