django的ajax_cookie和session
1、Cookie與session
由于http請求是無狀態(tài)的,無法記錄用戶的身份,所以需要有一種機制來長期的保存和校驗用戶的身份,最先出現(xiàn)的是cookie。
Cookie:是由服務(wù)器下發(fā)到用戶(瀏覽器)本地的用于校驗身份的數(shù)據(jù)。Cookie工作的機制類似上面的通關(guān)文牒:
用戶第一次請求服務(wù)器
服務(wù)器根據(jù)用戶提交的數(shù)據(jù)來識別用戶身份,然后下發(fā)對應(yīng)的cookie
用戶第二次攜帶cookie請求服務(wù)器
服務(wù)器根據(jù)cookie為用戶提供服務(wù)。
由于cookie是由服務(wù)器下發(fā)到用戶本地的,所以導(dǎo)致了一些安全性問題:
1、用戶可以拒收cookie
2、用戶可以仿造cookie
Session就是為了解決cookie的安全性問題提出的一種新的回話控制技術(shù)。
Session需要結(jié)合cookie進(jìn)行使用。
Session存放在服務(wù)器的數(shù)據(jù)庫當(dāng)中
django自帶session庫
使用session之后,不會再次直接向服務(wù)器下發(fā)cookie身份信息,下發(fā)的是一個隨機不重復(fù)的session_id,用戶攜帶session_id訪問服務(wù)器,服務(wù)器通過session_id判斷身份,下發(fā)cookie。再次校驗,校驗:
1、session和cookie對應(yīng)
2、Session是否過期
3、Cookie是否合法
Cookie和session的比對:
Cookie放在用戶本地,session存在服務(wù)器數(shù)據(jù)庫當(dāng)中
校驗cookie速度比較快,但安全性不夠好
校驗session速度比較慢,安全性相對好,但未從根本上解決安全問題
Cookie的基本操作:
路由配置
設(shè)置cookie
def setCookie(request):response=render(request,"setCookie.html")response.set_cookie("username","123")return response查詢cookie下發(fā)
請求攜帶cookie
cookie參數(shù)設(shè)置
獲取校驗cookie
刪除cookie
def delCookie(request):response=HttpResponseRedirect("/p404/")response.delete_cookie("username")return response def tishi(request):return HttpResponse("頁面跑偏了,找不到頁面可以找bug")#return render_to_response("p404.html")index.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> Cookie <a href="/sc/" >存在cookie</a> <a href="/del/"> 刪除cookie</a></body> </html>p404.html
`<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> 頁面找不到了 </body> </html>`session配置
總結(jié)
以上是生活随笔為你收集整理的django的ajax_cookie和session的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django中的ajax_post请求
- 下一篇: django的ajax_get请求