作為一個測驗工程師,做介面自動化時,難免會遇到介面之間的關聯以及登錄介面等,所以了解cookie和session、token是必備的,下面這篇文章來給大家簡單介紹Cookie和Session:
一、Cookie
1、什么是Cookie?
目前大部分網路都是采用HTTP協議,那么HTTP協議本身是沒有狀態的,等同于,服務器無法判斷用戶的身份,cookie實質是以一個Key-value格式保存的,客戶端向服務器發送請求時,response向客戶端發送一個cookie,客戶端將此cookie保存起來(保存于客戶端),當瀏覽器再次發起請求時,再請求資訊里將cookie一并發送給服務器,服務器檢查該cookie,可以校驗用戶的狀態,
2、Cookie的運行流程
3、實體-登錄京東
3.1 登錄京東
3.2 退出登錄
3.3 回到登錄界面,查看cookie資訊

3.3.1 會發現上次登錄的用戶名(手機號碼)已經回顯在頁面上
3.3.2 F12->Appication->Cookie

3.3.3 mp就是我們填寫的用戶名
3.3.4 Cookie是有過期機制的,Expires是過期時間,相當于一個月之內登錄京東,都會看到手機號回顯的效果
二、Session
1、什么是Session?
Session 是存放在服務器端的,當瀏覽器第一次發送請求時,服務器自動生成了一個Session和一個Session ID用來唯一標識這個Session,并將其通過回應發送到瀏覽器,當瀏覽器第二次發送請求,會將前一次服務器回應中的Session ID放在請求中一并發送到服務器上,服務器從請求中提取出Session ID,并和保存的所有Session ID進行對比,找到這個用戶對應的Session,
2、運行機制?
服務器生成、存盤、驗證,以cookie的方式傳給客戶端,客戶端以同樣的方式發送給服務端,session有狀態,
3、Session的過期機制?與Cookie的區別
4、Session的弊端?
- 如果做了負載均衡的話,搭建了多個服務器,雖然每個服務器都執行的是同樣的業務邏輯,但是session資料是保存在記憶體中的(不是共享的),用戶第一次訪問的是服務器1,當用戶再次請求時可能訪問的是另外一臺服務器2,服務器2獲取不到session資訊,就判定用戶沒有登陸過,
三、python發起請求使用cookie + session方式進行鑒權
import requests
# 創建session物件,后面直接使用創建的物件發送請求即可
# requests庫的session會話物件可以跨請求保持某些引數
s = request.session()
url = 'http://api.juheapi.com/japi/toh'
data = {
"key":"7486da7f50cd55e6774fb3311b526d**",
"v":'1.0',
"month":12,
"day":15
}
response = s.post(url=url,data=data)
print(response.json())
以上內容有誤處,麻煩與在下面評論,多多指教,相互學習,謝謝!