1. 程式人生 > 其它 >常用的狀態碼/cookie/session/token的請求流程

常用的狀態碼/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 ⽆許可權訪問該系統

 

 認證方式(授權): 1、基本 basic 2、常規 digest 3、自定義 4、oauth2.0 (微信)

 

基本認證方式:認證完成就有許可權訪問該系統

 

 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是一個隨機的字串