Cookie 作用,互動過程解析,設定,獲取,刪除,生效時間的設定
Cookie的作用:
對於Cookie的定義:為了辨別使用者身份,進行的會話追蹤而儲存在使用者本地的資料。
Cookie的一個作用,就是進行狀態保持;比如我們們在瀏覽淘寶網時,如果伺服器和瀏覽器是一種無狀態的形式,那麼你每次登陸完淘寶網,再次重新整理或者進入其他頁面時,登陸資訊就會丟失,需要重新進行登陸。也就是說,預設狀態下,當使用者在一次請求時,瀏覽器和伺服器並不知道在這次請求之前這個使用者進行過什麼操作。
為了解決上面的無狀態情形,就需要進行狀態保持,那麼狀態保持在Flask中有兩種方式:
- 在客戶端儲存資訊:cookie
- 在伺服器儲存資訊:session
Cookie的互動流程:
下面以使用者登陸某個網站為例:
①:瀏覽器會傳送請求登陸的報文
②:伺服器接收到登入名和登陸密碼之後,在判斷無誤之後,會生成cookie;在生成cookie之後,會和響應報文一起返回給瀏覽器。
生成cookie的程式碼如下(在響應中生成cookie),response.set_cookie(’鍵‘,’值‘):
# 需要匯入 from flask import make_response
@app.route('/login')
def login():
response = make_response('success')
response.set_cookie('user_id', '11')
response.set_cookie('user_pwd', '123456')
return response
③瀏覽器接收到cookie後,會將cookie儲存在瀏覽器本地;
在執行後,我們可以查詢瀏覽器此時存在的cookie,如下圖
④:瀏覽器再次請求時,會把這個cookie裡面的內容帶上,傳送給伺服器:
獲取cookie的程式碼如下(cookie的獲取在請求中獲取),瀏覽器在訪問伺服器時,會將本網站下所有Cookie資訊提交給伺服器,所以在request中可以讀取Cookie資訊;方法:request.cookies.get(鍵):
# 需要匯入 from flask import request
# 能獲取到的前提是,在獲取之前已經生成了cookie,且沒有被刪除
@app.route('/')
def index():
user_id = request.cookies.get('user_id')
user_pwd = request.cookies.get('user_pwd')
return '%s:%s' % (user_id, user_pwd)
cookie生效時間的設定:
在set_cookie中加入【max_age=時間數值 】的引數即可,程式碼如下:
@app.route('/login')
def login():
response = make_response('success')
response.set_cookie('user_id', '11', max_age=60)
response.set_cookie('user_pwd', '123456', max_age=60)
return response
cookie的刪除:
刪除也是在響應中設定的,使用 delete_cookie(鍵)
@app.route('/logout')
def logout():
response = make_response('success')
response.delete_cookie('user_id')
response.delete_cookie('user_pwd')
return response
cookie的刪除,如下圖所示:
當再次進入介面時,cookie的數量就會顯示為0 :
提示:
- Cookie基於域名安全,不同域名的Cookie是不能互相訪問的
- 比如:在訪問taobao.com時向瀏覽器中寫了Cookie資訊,使用同一瀏覽器訪問baidu.com時,無法訪問到taobao.com寫的Cookie資訊;
- 瀏覽器的同源策略
Cookie互動過程的圖文解析:
相關文章
- cookie的設定、獲取和刪除Cookie
- Python Flask,cookie,設定、獲取、刪除cookiePythonFlaskCookie
- 如何設定cookie和刪除cookieCookie
- JavaScript 設定cookie 過期時間JavaScriptCookie
- JavaScript 設定Cookie過期時間無效JavaScriptCookie
- pydantic 欄位的預設值設定獲取當前時間
- localStorage設定過期時間
- redis設定過期時間Redis
- cookie的設定Cookie
- Cookie新增、獲取以及刪除操作Cookie
- Postman設定自動捕獲傳遞Cookie教程PostmanCookie
- JavaScript設定cookie立即過期JavaScriptCookie
- 優雅的快取解決方案--設定過期時間快取
- 如何設定自動獲取ip地址
- Passport 設定token 過期時間盡然不生效!這是為什麼?Passport
- Java 設定、刪除、獲取Word文件背景(基於Spire.Cloud.SDK for Java)JavaCloud
- swift 獲取通知設定Swift
- 如何設定CookieCookie
- Cookie的設定、讀取以及是否自動攜帶問題Cookie
- MyBatis自動設定建立時間和更新時間MyBatis
- 瀏覽器手動設定Cookie瀏覽器Cookie
- 在 Python 除錯過程中設定不中斷的斷點Python除錯斷點
- python flask 設定cookiePythonFlaskCookie
- postman如何設定cookiePostmanCookie
- 通過offsets.retention.minutes設定kafkaoffset的過期時間Kafka
- C# 給PDF文件設定過期時間C#
- 如何給localStorage設定一個過期時間?
- tomcat 設定session過期時間(四種方式)TomcatSession
- iOS WebView UserAgent 獲取和設定iOSWebView
- 獲取和設定pdf目錄
- Python 設定 session 或 cookie 增、刪、改、查鍵值PythonSessionCookie
- php 根據給定字串時間獲取時區PHP字串
- win10怎麼自動開啟自動設定時間_win10開啟自動設定時間的步驟Win10
- WinAppDriver 等待時間設定技巧APP
- linux系統時間設定Linux
- js時間顯示設定JS
- Linux設定系統時間Linux
- localStorage設定儲存時間