1. pprint
https://www.cnblogs.com/yjybupt/p/10669988.html
https://www.cnblogs.com/wongbingming/p/12854618.html
2. 鑑權:
http://testingpai.com/article/1621929988356
3. import json
json.dump() 轉成json
json.loads() 轉成字串
4. cookie可以帶各種 可以帶session,session+token,token可以透過set-cookie傳,也可以透過別的請求頭傳,這些都是靈活的,全看後端開發怎麼解析,session一般是隻能透過響應的set-cookie返回,請求的時候再透過cookie欄位帶過去
二、鑑權
1. session、cookie 鑑權
a. 使用MD5、RSA(看不懂的字串)加密,建立一個session物件id和cookie存在mysql或者redis(非關係型資料庫)中
b. cookie是前端的一種快取機制,引數存在快取裡,session是後端生成的
c. 不知道是什麼鑑權可以去問開發
2. token 鑑權 解放了快取,不用儲存,每次都要計算,消耗cpu但是不消耗記憶體,cpu比較便宜
a. 註冊(資料庫儲存使用者名稱和密碼)
b. 登陸(提交使用者名稱+密碼)
c. 後端獲取到使用者名稱密碼(進行校驗密碼和使用者名稱是否與資料庫儲存的一致)
d. 給我令牌(token)
e. 演算法生成token(rootAa12345620412010) 生成token和解析token的規則是固定的
f. 返回給客戶端
g. 客戶端再次請求介面帶上token
h. 後端接收到token並解析token(rootAa12345620412010)
i. 抽取時間戳(20412010)和id10使用者的唯一標識
j. 透過使用者唯一標識去資料庫找到生成token需要的資料
k. 再生成一次token(rootAa12345620412010) 時間戳都是使用之前傳遞的時間戳,當再次生成時才換掉
l. 拿新生成的和你給我的對比 + 時間戳間隔對比
用當時的時間戳和之前的做對比(間隔多長時間是由後端決定的)判斷token時效是否過期
m. token一致就返回介面資料
3. session、cookie 鑑權和token 鑑權的區別
a. session會消耗記憶體要到庫裡對比,token不消耗記憶體只需要cpu計算
b. token相對安全,使用RSA非對稱加密,但是token可逆
c. session會透過儲存一般是不可逆的
4. 重點
a. token生成規則(後端決定)
b. 如何校驗token正確性、如何校驗token有效時間
c. token替換規則(後端決定)
d. 用例執行時token失效,直接重新獲取就好,異常捕獲,重新獲取token,pytest可以錯誤重試
e. 鑑權方式和token有效時間可以問開發
三、requests
1. 一些概念:
a. 什麼叫介面
i. USB:傳資料
ii. 網際網路:用來傳資料
b. 介面必要資料
i. 請求地址: https://openapiv5.ketangpai.com/UserApi/login
ii. 請求方法:post、get
iii. 請求資料:
iv. 響應引數:
c. 使用:requests支援所有的http請求方式
2. get請求:requests.get(url=url,params=None,**kwargs)
a. url:請求地址
b. params=None:請求引數
c. **kwargs:其他欄位
d. 引數放在url後面:直接拼接可一個新的url
如 url :'http://httpbin.org/get?key1=val1&key2=val2'
e. 引數使用params關鍵字接收,會自動拼接到url地址後面
f. ?:表示後面都是查詢引數,key1=val1形式展示,多個引數使用&進行連線
3. post請求 requests.post(url,data=None,json=None,**kwargs)
a. url: 請求地址
b. data=None:請求引數
data關鍵字:預設form表單'Content-Type': 'application/x-www-form-urlencoded'
如果設定請求頭headers = {'Content-Type': 'application/json;charset=UTF-8'},就使用設定的方式
c. json=None:請求引數
json關鍵字:預設json模式 'Content-Type': 'application/json;charset=UTF-8'
如果設定請求頭headers = {'Content-Type': 'application/x-www-form-urlencoded'},就使用設定的方式
d. **kwargs:接收其他欄位
4. post的引數格式
a. application/x-www-form-urlencoded
預設地,表單資料會編碼為 “application/x-www-form-urlencoded”。就是說,在傳送到伺服器之前,所有字元都會進行編碼,空格轉換為 “+” 加號,特殊符號轉換為 ASCII HEX 值。
窗體資料被編碼為:名稱/值對,這是標準的編碼格式。
b. application/json
資料以 JSON 形式進行編碼
c. multipart/form-data,頭像
窗體資料被編碼為一條訊息,頁上的每個控制元件對應訊息中的一個部分,上傳附件用到。在使用包含檔案上傳控制元件的表單時,必須使用該值。
d. text/html
文字方式的網頁檔案。
e. text/xml
文字方式的 XML 檔案,text/xml 忽略 XML 頭所指定編碼格式而預設採用 US-ASCII 編碼。
f. text/plain
窗體資料以純文字形式進行編碼,其中不含任何控制元件或格式字元。空格轉換為 “+” 加號,但不對特殊字元編碼。
g. application/xml
資料以 XML 形式進行編碼,application/xml 會根據 XML 頭指定的編碼格式來編碼。
三、POST與GET區別
1. 引數傳遞
get:放在請求地址後面,查詢資料,向後端獲取資料,傳的是查詢引數(where條件)
post:放在body裡面,提交引數,OCR引數、圖片、檔案
2. 引數長度
get、post引數長度實際上是由後端配置決定,並不是請求本身決定
get請求會做引數大小的限制:比較小
post請求也會做引數大小限制:稍微大一些
3. 安全性
get引數暴露在瀏覽器地址上
post放在body裡面,需要抓包才能看見
4. 冪等性
a. 處理同一個請求的重複傳送的方式
get請求查詢一次和查詢N次得到的結果都是一樣 select * from user where id = 100;
post請求提交資料:註冊,需要做冪等處理 insert into tabel()value();
b. 金融行業前端防多點(防止併發),後端冪等(請求資料一樣,則只處理一條請求)
Python_16 session、cookie 鑑權
一、查缺補漏
相關文章
- .net core cookie 鑑權Cookie
- jwt與session的登入鑑權JWTSession
- nuxt框架中路由鑑權——Koa和SessionUX框架路由Session
- cookie sessionCookieSession
- cookie & sessionCookieSession
- 許可權處理 - 用redis實現分散式session~ (cookie && session )Redis分散式SessionCookie
- Next.js-Cookie鑑權+續期+退出登入JSCookie
- cookie&sessionCookieSession
- Cookie和SessionCookieSession
- session和cookieSessionCookie
- cookie 和 sessionCookieSession
- Session與CookieSessionCookie
- cookie、session、web storageCookieSessionWeb
- 【Javaweb】Cookie和SessionJavaWebCookieSession
- Cookie & Session詳解CookieSession
- Django Cookie與SessionDjangoCookieSession
- Cookie&Session&JSPCookieSessionJS
- 理解 cookie、session、tokenCookieSession
- cookie、session總結CookieSession
- API 鑑權新姿勢 – 簽名鑑權API
- laravel操作session和cookieLaravelSessionCookie
- Cookie與Session 關係CookieSession
- Cookie與Session詳解CookieSession
- 關於Session和CookieSessionCookie
- session和cookie關係SessionCookie
- Session和Cookie機制SessionCookie
- cookie與session的使用CookieSession
- 撩下Cookie和SessionCookieSession
- ASP.NET Core之身份驗證和授權Cookie&SessionASP.NETCookieSession
- Cookie,Session Filter,Listener詳解CookieSessionFilter
- session與cookie的區別SessionCookie
- Django框架之Cookie和SessionDjango框架CookieSession
- 對session和cookie的理解SessionCookie
- 徹底理解cookie,session,tokenCookieSession
- Tomcat 中的 Session 和 CookieTomcatSessionCookie
- localStorage 與 sessionStorage / cookie 和 sessionSessionCookie
- Cookie&Session概念解讀CookieSession
- cookie和session的區別CookieSession