教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

什么是Cookie?怎樣設置和讀取Cookie?

更新時間:2021年09月14日16時21分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓

Cookie,有時也用其復數(shù)形式Cookies,指某些網(wǎng)站為了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密)。Cookie最早是網(wǎng)景公司的前雇員Lou Montulli在1993年3月的發(fā)明。Cookie是由服務器端生成,發(fā)送給User-Agent(一般是瀏覽器),瀏覽器會將Cookie的key/value保存到某個目錄下的文本文件內(nèi),下次請求同一網(wǎng)站時就發(fā)送該Cookie給服務器(前提是瀏覽器設置為啟用cookie)。Cookie名稱和值可以由服務器端開發(fā)自己定義,這樣服務器可以知道該用戶是否合法用戶以及是否需要重新登錄等。服務器可以利用Cookies包含信息的任意性來篩選并經(jīng)常性維護這些信息,以判斷在HTTP傳輸中的狀態(tài)。Cookies最典型的應用是判定注冊用戶是否已經(jīng)登錄網(wǎng)站,用戶可能會得到提示,是否在下一次進入此網(wǎng)站時保留用戶信息以便簡化登錄手續(xù),這些都是Cookies的功用。另一個重要應用場合是“購物車”之類處理。用戶可能會在一段時間內(nèi)在同一家網(wǎng)站的不同頁面中選擇不同的商品,這些信息都會寫入Cookies,以便在最后付款時提取信息。

Cookie是存儲在瀏覽器中的一段純文本信息,建議不要存儲敏感信息如密碼,因為電腦上的瀏覽器可能被其他人使用。

Cookie以鍵值對的格式進行信息的存儲。

Cookie基于域名安全,不同域名的Cookie是不能互相訪問的,如訪問itcast.cn時向瀏覽器中寫了Cookie信息,使用同一瀏覽器訪問baidu.com時,無法訪問到itcast.cn寫的Cookie信息。

當瀏覽器請求某網(wǎng)站時,會將本網(wǎng)站下所有Cookie信息提交給服務器。

典型應用:記住用戶名,網(wǎng)站的廣告推送。

說明:點擊示例網(wǎng)址,這些廣告推送的商品是基于你曾經(jīng)在淘寶上點擊的商品類別等條件篩選出來的,看上去這是在鳳凰網(wǎng)上訪問淘寶網(wǎng)的Cookie,但是事實不是這樣的,一般是采用iframe標簽嵌套一個淘寶的廣告頁面到鳳凰網(wǎng)的頁面上,所以淘寶的Cookie并沒有被鳳凰網(wǎng)讀取到,而是依然交給淘寶網(wǎng)讀取的,可以通過“開發(fā)者工具”查看元素,如下圖

1631588075599_11.png

接下來講解如何在Django中實現(xiàn)Cookie的讀寫

設置Cookie

打開booktest/views.py文件,創(chuàng)建視圖cookie_set

def cookie_set(request):
    response = HttpResponse("<h1>設置Cookie,請查看響應報文頭</h1>")
    response.set_cookie('h1', '你好')
    return response

打開booktest/urls.py文件,配置url

url(r'^cookie_set/$',views.cookie_set),

在瀏覽器輸入如下網(wǎng)址

http://127.0.0.1:8000/cookie_set/

在“開發(fā)者工具”中可以在響應頭中查看到設置的Cookie信息

1631588084422_12.png

讀取Cookie

Cookie信息被包含在請求頭中,使用request對象的COOKIES屬性訪問打開booktest/views.py文件,創(chuàng)建視圖cookie_get

def cookie_get(request):
    response = HttpResponse("讀取Cookie,數(shù)據(jù)如下:<br>")
    if request.COOKIES.has_key('h1'):
        response.write('<h1>' + request.COOKIES['h1'] + '</h1>')
    return response

打開booktest/urls.py文件,配置url

    url(r'^cookie_get/$',views.cookie_get),

在瀏覽器輸入如下網(wǎng)址

http://127.0.0.1:8000/cookie_get/

打開“開發(fā)者工具”,在請求頭中可以查看Cookie信息,瀏覽效果如下圖

1631588093532_13.png




猜你喜歡:

為什么禁用cookie后session也不能用了?怎么解決?

Python中cookie的設置方法

Localstorage、sessionStorage、cookie三者有什么區(qū)別?

怎樣使用BorderLayout管理布局頁面?效果怎樣?

傳智教育python大數(shù)據(jù)開發(fā)課程

0 分享到:
和我們在線交談!