Django筆記(cookie與session的運用及區別)
阿新 • • 發佈:2019-01-29
目錄
cookie
瀏覽器端的會話技術
怎麼使用
設定cookie
response = HttpResponse() # 設定cookies #response.set_cookie(key,value[,max_age=None,exprise=None)] # max_age=整數,指定cookie過期時間 設定為0 瀏覽器關閉失效 單位是秒 # exprise=整數,指定過期時間 還支援是一個datetime或timedelta,可以指定一個具體日期時間 #(expires=timedelta(days=10) 10天后過期) 設定為None永不過期 response.set_cookie('u_name', name, max_age=5)
讀取cookie
# 拿cookies裡面的值,返回給頁面
u_name = req.COOKIES.get("u_name")
刪除cookie:delete_cookie
def my_logout(req):
# 重定向到首頁
response = HttpResponseRedirect("/dj04app/my_index")
# 刪除u_name 對於的cookies
response.delete_cookie('u_name')
return response
cookie的缺點:資料不安全,暴露在瀏覽器端
session
伺服器端的會話技術,基於cookie,把資料儲存到服務端
怎樣使用
設定session
# 設定session
#request.session['你的key'] = 你的value
req.session["ll"] = name
讀取session
# 讀取session ,你的key
my_session_data = req.session.get('ll')
session資料存在服務端
用mysql可以看到
裡面的資料用base64位加密,在網上可以找到解密網站
cookie與session的區別
1.cookie和session都是會話技術,cookie是執行在客戶端,session是執行在伺服器端。
2.cookie由大小限制以及瀏覽器在存cookie的個數也是有限的,session是沒有大小限制和伺服器的記憶體大小有關。
3.cookie由安全隱患,通過攔截或本地找到cookie後可以進行攻擊。
4.session是儲存子伺服器端上,存在一段時間才會消失,如果session過多會增加伺服器的壓力。