欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django中Cookie搭配Session使用實(shí)踐

 更新時(shí)間:2021年09月18日 11:39:11   作者:ProgramNotes  
session和cookie功能差不多,同樣是用來記錄用戶信息和維持會話狀態(tài)的,但是session是依賴cookie的,本文主要介紹了Django中Cookie搭配Session使用實(shí)踐,感興趣的可以了解一下

Cookie的作用

前面我們說道Django實(shí)戰(zhàn)006:Cookie設(shè)置及跨域問題處理,Cookie可以在瀏覽器端保存用戶數(shù)據(jù),當(dāng)用戶訪問服務(wù)器時(shí)會提交Cookie給服務(wù)器,Cookie附加了當(dāng)前狀態(tài), 服務(wù)器可以通過Cookie來標(biāo)識用戶的登錄狀態(tài),起到簡單的用戶身份識別和用戶信息記錄等作用。

Cookie登錄的實(shí)現(xiàn)過程

1.用戶通過form表單提交自己的用戶名和密碼,這通常是一個(gè)POST的 HTTP請求。

2.服務(wù)器拿到用戶的信息開始驗(yàn)證用戶名與密碼,如果與數(shù)據(jù)庫匹配成功我們就返回200同時(shí)設(shè)置一個(gè)Set-Cookie拋給瀏覽器,通過為‘鍵'=‘值'形式 。

3.瀏覽器接收到服務(wù)器響應(yīng)返回的數(shù)據(jù)和Cookie,然后將Cookie存起來,在開發(fā)者application中可以查看到。

4.瀏覽器再次發(fā)送請求時(shí),將設(shè)置了‘鍵'=‘值'的Cookie再次拋給服務(wù)器,服務(wù)器通過Cookie的字段判斷用戶已經(jīng)登錄,則根據(jù)需求處理用戶請求,否則返回400提示用戶先登錄。

Cookie的安全隱患

這就是Cookie的實(shí)現(xiàn)過程,這里有個(gè)很明顯的問題就是服務(wù)器只要識別到正確的Cookie就會處理對應(yīng)的數(shù)據(jù),那么有心人只要想辦法截獲(很多HTTP客戶端軟件都可以發(fā)送任意的HTTP請求)你的Cookie就可以冒充用戶來訪問該服務(wù)器并獲取到用戶的所有信息,這對用戶來說會存在著極大的安全隱患。

Session的引進(jìn)

session和cookie功能差不多,同樣是用來記錄用戶信息和維持會話狀態(tài)的,但是session是依賴cookie的。session不同在于將用戶數(shù)據(jù)存儲在服務(wù)器端(用戶拿到session內(nèi)的具體內(nèi)容),Cookie則是將數(shù)據(jù)存儲在瀏覽器端,所以相對cookie來說,session相對安全多了,我們只需要在設(shè)置Cookie時(shí)附帶上session的id,當(dāng)用戶再次訪問服務(wù)器時(shí)將session的id拋給服務(wù)器進(jìn)行效驗(yàn)。

Session的啟用

Django中使用session很簡單,Django封裝了session模塊,默認(rèn)在我們創(chuàng)建項(xiàng)目的時(shí)候就已經(jīng)啟用了,在數(shù)據(jù)庫中可以找到一個(gè)名為django_session的數(shù)據(jù)庫表,這個(gè)就是用來存放session數(shù)據(jù)的。

Session的使用

設(shè)置保存session數(shù)據(jù),通過reques.session['鍵']='值'的方式來設(shè)置指定存儲的session信息,通過瀏覽器訪問該視圖就可以將session設(shè)置的信息以base64編碼存入到django_session數(shù)據(jù)庫表中。

讀取session數(shù)據(jù),同樣很簡單通過request.session.get('鍵')來獲取對應(yīng)的值,通過該方法可以從django_session數(shù)據(jù)庫表中讀取到對應(yīng)鍵的值。

 Session搭配Cookie使用

在cookie中傳入sessionid作為前端的存儲值,這里為了保證sessionid的唯一性,我最簡單的方法是用uuid來生成隨機(jī)字符串,再在sessionid中設(shè)置session值,再給set_cookie設(shè)置個(gè)過期時(shí)間,這樣只要時(shí)間一到又會重新生成一個(gè)新的sessionid來(如果你覺得uuid4()還是會出現(xiàn)重復(fù)也可以自行定義)。

在瀏覽器端看到的就是一串隨機(jī)的字符串,當(dāng)用戶訪問服務(wù)器時(shí)cookie會把sessionid拋給服務(wù)器,服務(wù)器驗(yàn)證sessionid對應(yīng)的值是否為django_session數(shù)據(jù)庫表中讀取到對應(yīng)鍵的值,如果是則執(zhí)行數(shù)據(jù)請求操作,否則返回400,告訴前端操作失敗。

到此這篇關(guān)于Django中Cookie搭配Session使用實(shí)踐的文章就介紹到這了,更多相關(guān)Django Cookie搭配Session內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python入門教程(二十六)Python的模塊

    Python入門教程(二十六)Python的模塊

    這篇文章主要介紹了Python入門教程(二十六)Python的模塊,Python是一門非常強(qiáng)大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • python發(fā)送郵件的實(shí)例代碼(支持html、圖片、附件)

    python發(fā)送郵件的實(shí)例代碼(支持html、圖片、附件)

    python發(fā)送郵件的一些例子,有需要的朋友可以參考下
    2013-03-03
  • 基于python+pandoc實(shí)現(xiàn)html批量轉(zhuǎn)word

    基于python+pandoc實(shí)現(xiàn)html批量轉(zhuǎn)word

    pandoc是一個(gè)強(qiáng)大的文檔格式轉(zhuǎn)換工具,支持豐富的格式轉(zhuǎn)換,并盡可能的保留原來的排版,號稱文檔格式轉(zhuǎn)換的瑞士軍刀,本文將給大家介紹一下使用python搭配pandoc實(shí)現(xiàn)html批量轉(zhuǎn)word,感興趣的朋友可以參考閱讀下
    2023-09-09
  • Python?Base64編碼和解碼操作

    Python?Base64編碼和解碼操作

    Base64?就是一種基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)的方法,這篇文章主要介紹了Python?Base64編碼和解碼,需要的朋友可以參考下
    2022-12-12
  • Python跑循環(huán)時(shí)內(nèi)存泄露的解決方法

    Python跑循環(huán)時(shí)內(nèi)存泄露的解決方法

    這篇文章主要介紹了Python跑循環(huán)時(shí)內(nèi)存泄露的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python 正則表達(dá)式參數(shù)替換實(shí)例詳解

    python 正則表達(dá)式參數(shù)替換實(shí)例詳解

    這篇文章主要介紹了python 正則表達(dá)式參數(shù)替換,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python本地及虛擬解釋器配置過程解析

    Python本地及虛擬解釋器配置過程解析

    這篇文章主要介紹了Python本地及虛擬解釋器配置過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 基于Python制作一個(gè)圖片色卡提取器

    基于Python制作一個(gè)圖片色卡提取器

    在一些特殊的業(yè)務(wù)場景中,我們需要一次性提取一張圖片中的色卡信息,并且需要使用十六進(jìn)制的顏色表示方法進(jìn)行展示。本文就來用Python做個(gè)圖片色卡提取器,感興趣的可以嘗試一下
    2022-12-12
  • 使用python數(shù)據(jù)清洗代碼實(shí)例

    使用python數(shù)據(jù)清洗代碼實(shí)例

    這篇文章主要介紹了使用python數(shù)據(jù)清洗代碼實(shí)例,分享一下近期用python做數(shù)據(jù)清洗匯總的相關(guān)代碼,這里我們用到的python包有pandas、numpy、os等,需要的朋友可以參考下
    2023-07-07
  • Python線性點(diǎn)運(yùn)算數(shù)字圖像處理示例詳解

    Python線性點(diǎn)運(yùn)算數(shù)字圖像處理示例詳解

    這篇文章主要為大家介紹了數(shù)字圖像處理基本運(yùn)算如何用Python詳細(xì)點(diǎn)運(yùn)算來處理數(shù)字圖像有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09

最新評論