国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python中的Cookie模塊如何使用

瀏覽:83日期:2022-07-22 17:56:51

Cookie 模塊,顧名思義,就是用來操作Cookie的模塊。

Cookie這塊小蛋糕,玩過Web的人都知道,它是Server與Client保持會話時用到的信息 切片。 Http協議本身是無狀態的,也就是說,同一個客戶端發送的兩次請求,對于Web服務器來說,沒有直接的關系。既然這樣,有人會問,既然Http是無狀態 的, 為什么有些網頁,只有輸入了用戶名與密碼通過驗證之后才可以訪問?

那是因為:對于通過身份驗證的用戶,Server會偷偷的在發往Client的數據中添 加 Cookie,Cookie中一般保存一個標識該Client的唯一的ID,Client在接下來對服務器的請求中,會將該ID以Cookie的形式一并 發往Server,Server從回傳回來的Cookie中提取ID并與相應的用戶綁定起來,從而實現身份驗證。說白了,Cookie就是一個在服務器與客戶端之間相互傳遞的字符串(下圖通過FireFox的FireBug插件查看訪問google.com時的Cookie)。

Cooke模塊中定義了4個直接操作Cookie的類:BaseCookie、SimpleCookie、SerialCookie、 SmartCookie。其中,BaseCookie是基類,定義了操作Cookie的公共部分,其他3個類都繼承自BaseCookie,它們之間的區 別僅僅在于序列化數據的方式不同。下面簡單講解這些類的使用。

BaseCookie基類: BaseCookies的行為非常像dict,可以用鍵/值對的形式來操作它,但是kye必須是字符串,value是Morsel對象 (下面會講到Morsel)。BaseCookies定義了編碼/解碼,輸入/輸出操作的公共規范:

BaseCookie.value_encode(val):對數據進行序列化/反序列化。這些方法都返回字符串,以便通過Http傳輸。 BaseCookie.output():返回字符串,該字符串可以作為Http響應頭發往客戶端。 BaseCookie.js_output():返回嵌入js腳本的字符串,瀏覽器通過執行該腳本,就可以得到cooke數據。 BaseCookie.load(newdata):解析字符串為Cookie數據。

SimpleCookie、SerialCookie、SmartCookie都繼承自BaseCookie,具有一致的行為,它們各自對 BaseCookie的value_decode, value_encode進行了重寫并實現自己的序列化/反序列化策略,其中:

SimpleCookie內部使用str()來對數據進行序列化;

SerialCookie則通過pickle模塊來序列化反序列化數據;

SmartCookie相對聰明點,對于非字符串數據,使用pickle序列/反序列化,否則將字符串原樣返回。

下面的例子簡單的說明如何使用Cookie模塊:

import Cookiec = Cookie.SimpleCookie()c[’name’] = ’DarkBull’c[’address’] = ’ChinaHangZhou’c[’address’][’path’] = ’/’# 路徑c[’address’][’domain’] = ’appspot.com’# domainc[’address’][’expires’] = ’Fir, 01-Oct-2010 20:00:00 GMT’ # 過期時間print c.output()print c.js_output()# 輸出結果,與上圖對照# Set-Cookie: address=ChinaHangZhou; Domain=appspot.com; expires=Fir, 01-Oct-2010 20:00:00 GMT; Path=/# Set-Cookie: name=DarkBull# 作為腳本輸出# <script type='text/javascript'># document.cookie = 'address=ChinaHangZhou; Domain=appspot.com; expires=Fir, 01-Oct-2010 20:00:00 GMT; Path=/';# </script># <script type='text/javascript'># document.cookie = 'name=DarkBull';# </script>

Morsel類 : 用于表示Cookie中每一項數據的屬性而抽象的類。這些屬性包括:expires, path, comment, domain, max-age, secure, version等等(看上圖下劃線標注部分)。如果你玩過web,對這些應該不會陌生,可以在RCF2109中找到他們的具體定義

Morsel.key,Morsel.value:Cookie數據項的key/value(value可以是二進制數據);

Morsel.coded_value:數據編碼后得到的字符串。Http協議是基于文本的協議,Server無法直接向Client發送二進制數據,只有序列化成字符串后,才能發往Client;

Morsel.set(key, value, coded_value):設置Cookie數據項的key、value、coded_value;

Morsel.isReversvedKey(key):如果key是expires, path, comment, domain, max-age, secure, version, httponly中的一個,返回True,否則返回False;

Morsel.output():返回型如“Set-Cookie: …”的字符串,表示一個Cookie數據項;

Morsel.js_output():返回Cookie數據項的腳本字符串;

Morsel.OutputString(): 返回Morsel的字符串表示;

Morsel使用示例:

import Cookiem = Cookie.Morsel()m.set(’name’, ’DarkBull’, ’DarkBull’)m[’expires’] = ’Fir, 01-Oct-2010 20:00:00 GMT’m[’domain’] = ’appspot.com’print m.output()# 結果# Set-Cookie: name=DarkBull; Domain=appspot.com; expires=Fir, 01-Oct-2010 20:00:00

知識點擴展:

為什么要使用Cookie呢?

Cookie,指某些網站為了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數據(通常經過加密)

比如說有些網站需要登錄后才能訪問某個頁面,在登錄之前,你想抓取某個頁面內容是不允許的。那么我們可以利用Urllib2庫保存我們登錄的Cookie,然后再抓取其他頁面就達到目的了。

以上就是Python中的Cookie模塊如何使用的詳細內容,更多關于Python中的Cookie模塊用法的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 欧美大尺度aaa级毛片 | 九九在线免费观看视频 | 综合自拍| 日韩欧美国产视频 | 色综合久久88色综合天天小说 | 午夜dj视频完整社区 | 欧美老熟妇bbbb毛片 | 香蕉视频一级片 | 国产成人高清在线观看播放 | 99热精品在线免费观看 | 国产精品国产三级国产an不卡 | 国产一区二区三区四区在线观看 | 自拍小视频在线观看 | 国产视频自拍一区 | fc2ppv在线播放 | 久久综合精品国产一区二区三区 | 亚洲制服丝袜美腿亚洲一区 | 国产精品久久久天天影视香蕉 | 国产91精品露脸国语对白 | 中国一级毛片欧美一级毛片 | 成人久久久久久 | 影院成人区精品一区二区婷婷丽春院影视 | 亚洲视频在线免费观看 | 亚洲精品天堂一区在线观看 | 一级做a级爰片性色毛片视频 | 国产欧美日本在线 | 免费一级肉体全黄毛片 | 一级毛片不卡 | 男人的天堂欧美 | 99re热在线视频 | 国产高清天干天天视频 | 一区二区三区国产美女在线播放 | 久久99在线 | 亚洲天堂网站在线 | 国产亚洲精品成人婷婷久久小说 | 久久亚洲国产精品一区二区 | 国产特黄特色一级特色大片 | 久草免费看 | 成人亚洲欧美综合 | 另类亚洲视频 | 美女做爰视频在线观看免费 |