最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Cookie的作用

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

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

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

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

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

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

Cookie的安全隱患

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

Session的引進(jìn)

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

Session的啟用

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

Session的使用

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

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

 Session搭配Cookie使用

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

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

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

相關(guān)文章

  • python實(shí)現(xiàn)在pandas.DataFrame添加一行

    python實(shí)現(xiàn)在pandas.DataFrame添加一行

    下面小編就為大家分享一篇python實(shí)現(xiàn)在pandas.DataFrame添加一行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python SQLAlchemy簡(jiǎn)介及基本用法

    Python SQLAlchemy簡(jiǎn)介及基本用法

    SQLAlchemy是一個(gè)基于Python實(shí)現(xiàn)的ORM對(duì)象關(guān)系映射框架,該框架建立在DB API之上,使用關(guān)系對(duì)象映射進(jìn)行數(shù)據(jù)庫(kù)操作,這篇文章主要介紹了SQLAlchemy簡(jiǎn)介以及基本使用,需要的朋友可以參考下
    2023-08-08
  • pandas實(shí)現(xiàn)對(duì)一列/多列進(jìn)行數(shù)據(jù)區(qū)間篩選

    pandas實(shí)現(xiàn)對(duì)一列/多列進(jìn)行數(shù)據(jù)區(qū)間篩選

    這篇文章主要介紹了pandas實(shí)現(xiàn)對(duì)一列/多列進(jìn)行數(shù)據(jù)區(qū)間篩選方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 淺談python為什么不需要三目運(yùn)算符和switch

    淺談python為什么不需要三目運(yùn)算符和switch

    下面小編就為大家?guī)?lái)一篇淺談python為什么不需要三目運(yùn)算符和switch。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • Python實(shí)現(xiàn)簡(jiǎn)繁體轉(zhuǎn)換

    Python實(shí)現(xiàn)簡(jiǎn)繁體轉(zhuǎn)換

    很多時(shí)候簡(jiǎn)繁體轉(zhuǎn)換,掌握了簡(jiǎn)體與繁體的轉(zhuǎn)換,往往能夠事半功倍,本文主要介紹了Python實(shí)現(xiàn)簡(jiǎn)繁體轉(zhuǎn)換,感興趣的可以了解一下
    2021-06-06
  • Python實(shí)現(xiàn)的隨機(jī)森林算法與簡(jiǎn)單總結(jié)

    Python實(shí)現(xiàn)的隨機(jī)森林算法與簡(jiǎn)單總結(jié)

    這篇文章主要介紹了Python實(shí)現(xiàn)的隨機(jī)森林算法,結(jié)合實(shí)例形式詳細(xì)分析了隨機(jī)森林算法的概念、原理、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-01-01
  • pytorch GAN生成對(duì)抗網(wǎng)絡(luò)實(shí)例

    pytorch GAN生成對(duì)抗網(wǎng)絡(luò)實(shí)例

    今天小編就為大家分享一篇pytorch GAN生成對(duì)抗網(wǎng)絡(luò)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • pandas如何將dataframe中的NaN替換成None

    pandas如何將dataframe中的NaN替換成None

    這篇文章主要介紹了pandas如何將dataframe中的NaN替換成None問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python實(shí)現(xiàn)名片管理系統(tǒng)

    python實(shí)現(xiàn)名片管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)名片管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 詳解Python如何優(yōu)雅的重試

    詳解Python如何優(yōu)雅的重試

    這篇文章主要為大家介紹了Python如何優(yōu)雅的重試詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評(píng)論

航空| 东乌珠穆沁旗| 乡宁县| 岳西县| 山阳县| 宁津县| 曲松县| 衡南县| 隆尧县| 从化市| 曲靖市| 阳东县| 扶风县| 岢岚县| 南开区| 温州市| 唐河县| 巴林左旗| 民丰县| 海晏县| 井研县| 铜山县| 中西区| 三亚市| 梅河口市| 姚安县| 石台县| 繁昌县| 重庆市| 永新县| 喀什市| 杭锦后旗| 天等县| 板桥市| 拜泉县| 三原县| 叙永县| 贞丰县| 辽宁省| 邳州市| 新郑市|