首頁技術文章正文

Cookie是什么?怎樣實現(xiàn)Cookie的讀寫?

更新時間:2021-09-14 來源:黑馬程序員 瀏覽量:

IT培訓班


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

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

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

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

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

典型應用:記住用戶名,網站的廣告推送。

說明:點擊示例網址,這些廣告推送的商品是基于你曾經在淘寶上點擊的商品類別等條件篩選出來的,看上去這是在鳳凰網上訪問淘寶網的Cookie,但是事實不是這樣的,一般是采用iframe標簽嵌套一個淘寶的廣告頁面到鳳凰網的頁面上,所以淘寶的Cookie并沒有被鳳凰網讀取到,而是依然交給淘寶網讀取的,可以通過“開發(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),

在瀏覽器輸入如下網址

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),

在瀏覽器輸入如下網址

http://127.0.0.1:8000/cookie_get/

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

1631588093532_13.png








猜你喜歡:

python如何使用Cookie?

Cookie、sessionStorage、localStorage的區(qū)別

cookie和session的區(qū)別和用法【Java面試題解析】

什么是查詢集?怎樣創(chuàng)建和使用查詢集?

黑馬程序員Python大數(shù)據(jù)開發(fā)培訓

分享到:
在線咨詢 我要報名
和我們在線交談!