亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Django中Cookie設置及跨域問題處理詳解

 更新時間:2021年09月18日 11:34:14   作者:ProgramNotes  
本文主要介紹了Django中Cookie設置及跨域問題處理,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

什么是Cookie(翻譯:曲奇餅干)

Cookie是存儲在瀏覽器中的一段純文本信息(簡單的說就是瀏覽器緩存),用來記錄用戶的使用情況并將其存儲在本地設備中,當用戶訪問服務器時會將Cookie附帶上,服務端通過讀取Cookie的記錄,來維持用戶與服務器的會話狀態(tài)。

Cookie怎么來的

Cookie是由服務器生成的,通常以鍵值對的格式呈現(xiàn)(鍵值由服務器端開發(fā)者自行定義),當用戶通過了瀏覽器訪問服務器時,服務器會在返回數(shù)據(jù)的時候把Cookie傳給瀏覽器(建議不要存儲敏感信息,因為瀏覽器可能被多人使用)。

為什么要用Cookie

Cookie是由HTTP服務器設置的,而HTTP協(xié)議是一種無狀態(tài)協(xié)議,瀏覽器與服務器使用Socket套接字進行通信,當服務器將請求結果返回給瀏覽器之后就會關閉當前的Socket連接并釋放資源,所以每次請求數(shù)據(jù)都需要建立新的連接。 Cookie的出現(xiàn)彌補了這個缺點,當瀏覽器向服務器發(fā)送請求時,會將瀏覽器中存儲的跟網站相關的所有Cookie信息提交給網站服務器,服務器通過Cookie中的信息來驗證用戶身份和判斷HTTP傳輸狀態(tài),并將符合條件的數(shù)據(jù)返回給瀏覽器。

Cookie的特點

Cookie是基于作用域設計的,也就是說同一域名下只能訪問到當前域名下的Cookie信息,無法訪問到其他域名的Cookie信息的。

怎么設置Cookie

Django可以通過HttpResponse來響應對象的set_cookie,設置好對應的視圖和路由,只要通過瀏覽器訪問該路由,瀏覽器就會自動獲取到set_cookie值并存入到本地(當瀏覽器正在運行時通常都存在內存中,當瀏覽器關閉時通常會存入硬盤中)。

Cookie常用參數(shù)

在設置Cookie時可以多參數(shù)定義,這個可以根據(jù)自己的需求來定義,最少要有key和value,其他可省略不填,方法是:response.set_cookie('鍵', '值')。

key:鍵
value:值
max_age:多久后過期,時間為秒,默認為None,臨時cookie設置即關閉瀏覽器就消失
expires:過期時間,具體時間
path:生效路徑,默認‘/'
domain:生效的域名,你綁定的域名
secure:HTTPS傳輸時應設置為true,默認為false
httponly:值應用于http傳輸,這時JavaScript無法獲取

怎么獲取Cookie

Django可以通過HttpResponse請求對象的COOKIES屬性來讀取Cookie,方法是:request.COOKIES.get('鍵'),這樣我們在瀏覽器訪問路由時就能直接獲取到之前設置好的Cookie了。

Cookie跨域問題處理

前面我們只是簡單的進行了路由請求,那么結合到系統(tǒng)中來又會是怎樣的呢,我把Cookie帶入到項目中來(前后端分離模式),我們會發(fā)現(xiàn),同樣的代碼在前面始終無法獲取到Cookie值,這是怎么回事呢?前面有提到Cookie是基于安全域設計的,所以是不支持跨域處理的 ,那么我們怎么來實現(xiàn)跨域訪問呢。這里我們要采用的是“跨域資源共享”,一種可以讓瀏覽器獲得訪問不同源服務器指定資源的權限機制,通過它Axios在訪問服務器時能攜帶著Cookie回來。

首先需要axios能夠獲取到Cookie,出于安全考慮瀏覽器默認是不支持獲取跨域Cookie的,所以這里我們需要對axios設置進行下修改,將withCredentials屬性設置為true,即允許瀏覽器設置或獲取Cookie。設置方法直接在main.js中進行全局設置,axios.defaults.withCredentials = true 。

      當服務器接收到請求后,會根據(jù)自己的跨域規(guī)則,決定是否同意這次請求,而這個規(guī)則在請求設置Cookie時就要給定,這里主要要設置Access-Control-Allow-Origin和Access-Control-Allow-Credentials屬性,Access-Control-Allow-Origin默認為‘*',這里需要改成前端ip,Access-Control-Allow-Credentials改為true即可。

到此這篇關于Django中Cookie設置及跨域問題處理詳解的文章就介紹到這了,更多相關Django中Cookie設置及跨域內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • OpenCV繪制圓角矩形的方法實例

    OpenCV繪制圓角矩形的方法實例

    我們在輪廓截取出來時一般需要是矩形的圖像,所以下面這篇文章主要給大家介紹了關于OpenCV繪制圓角矩形的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • Django中更新多個對象數(shù)據(jù)與刪除對象的方法

    Django中更新多個對象數(shù)據(jù)與刪除對象的方法

    這篇文章主要介紹了Django中更新多個對象數(shù)據(jù)與刪除對象的方法,Django是Python重多各色框架中人氣最高的一個,需要的朋友可以參考下
    2015-07-07
  • python3兩數(shù)相加的實現(xiàn)示例

    python3兩數(shù)相加的實現(xiàn)示例

    這篇文章主要介紹了python3兩數(shù)相加的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • python 批量修改 labelImg 生成的xml文件的方法

    python 批量修改 labelImg 生成的xml文件的方法

    這篇文章主要介紹了python 批量修改 labelImg 生成的xml文件的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • 正則化DropPath/drop_path用法示例(Python實現(xiàn))

    正則化DropPath/drop_path用法示例(Python實現(xiàn))

    DropPath 類似于Dropout,不同的是 Drop將深度學習模型中的多分支結構隨機"失效",而Dropout是對神經元隨機"失效"這篇文章主要給大家介紹了關于正則化DropPath/drop_path用法的相關資料,需要的朋友可以參考下
    2022-04-04
  • 深入詳解Python中生成器的原理與應用

    深入詳解Python中生成器的原理與應用

    生成器 是Python中一種非常實用的特性,它能幫助我們編寫高效的代碼,本文將詳細為大家介紹生成器的原理、用法以及實際應用場景,有需要的小伙伴可以了解下
    2023-12-12
  • Python命名空間詳解

    Python命名空間詳解

    這篇文章主要介紹了Python命名空間詳解,非常重要的概念,需要的朋友可以參考下
    2014-08-08
  • Python線性分類介紹

    Python線性分類介紹

    這篇文章主要介紹了Python線性分類,線性分類指在機器學習領域,分類的目標是指將具有相似特征的對象聚集。而一個線性分類器則透過特征的線性組合來做出分類決定,以達到此種目的。對象的特征通常被描述為特征值,而在向量中則描述為特征向量,需要的朋友可以參考下
    2022-02-02
  • python中進程間通信詳細介紹

    python中進程間通信詳細介紹

    大家好,本篇文章主要講的是python中進程間通信詳細介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python視頻處理模塊之moviepy的用法教程

    Python視頻處理模塊之moviepy的用法教程

    隨著自媒體時代,現(xiàn)在對視頻的處理變得越來越常見。而?Python?有一個專門用于處理視頻的第三方庫:moviepy,可以非常方便地對視頻進行一些簡單處理,下面我們就來看一看
    2022-07-07

最新評論