flask中cookie和session設定

2022-06-26 23:54:15 字數 2420 閱讀 2819

在**中,http請求是無狀態的。也就是說即使第一次和伺服器連線後並且登入成功後,第二次請求伺服器依然不能知道當前請求是哪個使用者。

cookie

的出現就是為了解決這個問題,第一次登入後伺服器返回一些資料(

cookie

)給瀏覽器,然後瀏覽器儲存在本地,當該使用者傳送第二次請求的時候,就會自動的把上次請求儲存的

cookie

資料自動的攜帶給伺服器,伺服器通過瀏覽器攜帶的資料就能判斷當前使用者是哪個了。

cookie

儲存的資料量有限,不同的瀏覽器有不同的儲存大小,但一般不超過

4kb。因此使用

cookie

只能儲存一些小量的資料。

session和

cookie

的作用有點類似,都是為了儲存使用者相關的資訊。不同的是,

cookie

是儲存在本地瀏覽器,而

session

儲存在伺服器。儲存在伺服器的資料會更加的安全,不容易被竊取。但儲存在伺服器也有一定的弊端,就是會占用伺服器的資源,但現在伺服器已經發展至今,一些

session

資訊還是綽綽有餘的。

web開發發展至今,

cookie

和session

的使用已經出現了一些非常成熟的方案。在如今的市場或者企業裡,一般有兩種儲存方式:

1、儲存在服務端:通過

cookie

儲存乙個

session_id

,然後具體的資料則是儲存在

session

中。如果使用者已經登入,則伺服器會在

cookie

中儲存乙個

session_id

,下次再次請求的時候,會把該

session_id

攜帶上來,伺服器根據

session_id

在session

庫中獲取使用者的

session

資料。就能知道該使用者到底是誰,以及之前儲存的一些狀態資訊。這種專業術語叫做

server side session

。2、將

session

資料加密,然後儲存在

cookie

中。這種專業術語叫做

client side session

。flask

採用的就是這種方式,但是也可以替換成其他形式。

回到頂部(go to top)

在flask中操作

cookie

,是通過

response

物件來操作,可以在

response

返回之前,通過

response.set_cookie

來設定,這個方法有以下幾個引數需要注意:

key:設定的cookie的

key。

value:key對應的

value

。max_age:改cookie的過期時間,如果不設定,則瀏覽器關閉後就會自動過期。

expires:過期時間,應該是乙個datetime型別。

domain:該cookie在哪個網域名稱中有效。一般設定子網域名稱,比如

cms.example.com

。path:該cookie在哪個路徑下有效。

使用:獲取:request.cookies.get(key, '預設值

')設定:resp.set_cookie(key, value, max_age=整數

)刪除:resp.delete_cookie(key)

flask中的

session

是通過from flask import session

。然後新增值

key和

value

進去即可。

client side session:flask中的

session

機制是將

session

資訊加密,然後儲存在

cookie

中。專業術語叫做

client side session

。server side session:儲存在伺服器,客戶端儲存的時session_id(通過

cookie

完成)使用:

獲取:session.get(key, '預設值

')設定:

session.permanent = true

session[key] = value  

刪除:指定刪除:session.pop(key, none)

清空所有:session.clear()

flask中cookie和session介紹

在 中,http請求是無狀態的。也就是說即使第一次和伺服器連線後並且登入成功後,第二次請求伺服器依然不能知道當前請求是哪個使用者。cookie的出現就是為了解決這個問題,第一次登入後伺服器返回一些資料 cookie 給瀏覽器,然後瀏覽器儲存在本地,當該使用者傳送第二次請求的時候,就會自動的把上次請求...

Flask中的cookie和session淺知

cookie技術的必要性 cookie的實現原理 cookie時用來將使用者資訊儲存在客戶端的技術,使用者資訊會被存放於客戶端的計算機中。cookie儲存到客戶端之後,當使用者再次通過瀏覽器發起對伺服器的請求的時候,瀏覽器就會自動帶著此 相關的cookie資訊來請求資料庫。而cookie資訊裡面儲存...

正確理解web互動中的cookie與session

cookie儲存在客戶端的純文字檔案 使用者請求伺服器指令碼 指令碼設定cookie內容 並 通過http response傳送cookie內容到客戶端並儲存在客戶端本地 客戶端再次傳送http請求的時候會將本地的cookie內容新增到http請求頭髮送給伺服器,伺服器端指令碼可以呼叫cookie內...