日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django的ajax_cookie和session

發(fā)布時間:2024/1/23 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django的ajax_cookie和session 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、Cookie與session

由于http請求是無狀態(tài)的,無法記錄用戶的身份,所以需要有一種機(jī)制來長期的保存和校驗(yàn)用戶的身份,最先出現(xiàn)的是cookie。
Cookie:是由服務(wù)器下發(fā)到用戶(瀏覽器)本地的用于校驗(yàn)身份的數(shù)據(jù)。Cookie工作的機(jī)制類似上面的通關(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ā)的是一個隨機(jī)不重復(fù)的session_id,用戶攜帶session_id訪問服務(wù)器,服務(wù)器通過session_id判斷身份,下發(fā)cookie。再次校驗(yàn),校驗(yàn):
1、session和cookie對應(yīng)
2、Session是否過期
3、Cookie是否合法
Cookie和session的比對:
Cookie放在用戶本地,session存在服務(wù)器數(shù)據(jù)庫當(dāng)中
校驗(yàn)cookie速度比較快,但安全性不夠好
校驗(yàn)session速度比較慢,安全性相對好,但未從根本上解決安全問題
Cookie的基本操作:
路由配置

from django.contrib import admin from django.urls import path,re_path from FormApp.views import * urlpatterns = [path('admin/', admin.site.urls),path('fe/',formExample),path('de/',delete_user), path('re/',requestExample), path('fp/',formpost), path('form/',djangoform), path('ag/',ajax_get), path('agd/',ajax_get_data), path('ap/',ajax_post), path('apd/',ajax_post_data), path('sc/',setCookie), path('del/',delCookie), path('index/',index), path('p404/',tishi), ]

設(shè)置cookie

def setCookie(request):response=render(request,"setCookie.html")response.set_cookie("username","123")return response

查詢cookie下發(fā)

請求攜帶cookie

cookie參數(shù)設(shè)置


獲取校驗(yàn)cookie

def index(request):cookies=request.COOKIES#所有請求攜帶的cookie,是一個標(biāo)準(zhǔn)的字典對象username=cookies.get("username")#獲取具體cookieif username=="123":#開始校驗(yàn)cookiesreturn render_to_response("index.html",locals())else:#注釋的寫法有問題,要避免這樣寫,使用indexd的url,訪問到了setCookie頁面#所以在這里的需求是跳轉(zhuǎn)路由,而不是指向頁面#return render_to_response("setCookie.html,locals())#所以我們使用重定向方法referer=request.META.get("HTTP_REFERER")#獲取路由來源if referer:#如果存在來源url=refererelse:url="/sc/"return HttpResponseRedirect(url)

刪除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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。