首頁  >  文章  >  後端開發  >  Python中Cookie的處理(一)Cookie庫

Python中Cookie的處理(一)Cookie庫

黄舟
黄舟原創
2016-12-23 17:30:321536瀏覽

Cookie用於伺服器實現會話,使用者登入及相關功能時進行狀態管理。若要在使用者瀏覽器上安裝cookie,HTTP伺服器為HTTP回應新增類似下列內容的HTTP標頭:

Set-Cookie:session=8345234;expires=Sun,15-Nov-2013 15:00:00 GMT;path=Sun,15-Nov-2013 15:00:00 GMT;path= /;domain=baidu.com

expires是cookie的生存週期,path是cookie的有效路徑,domain是cookie的有效域.

路徑"path"用於設定可以讀取一個cookie的最頂層的目錄.將cookie的路徑設定為你的網頁最頂層的目錄可以讓該目錄下的所有網頁都能存取該cookie.

方法:在你的cookie中加入path=/; 如果你只想讓"food" 目錄中的網頁可以使用該cookie,則你加入path=/food.

domain:有些網站有許多小的域名,例如百度可能還在"news.baidu.com" "zhidao.baidu.com" 和"v.baidu.com" 網域下有網頁.如果想要讓"baidu.com"下的所有機器都可以讀取該cookie,必須在cookie中加入 "domain=.baidu.com" .

用戶瀏覽器會儲存Cookie直到過期,瀏覽器會向符合path和domain的伺服器發送類似以下內容的HTTP請求報頭:

Cookie:session=8345234。

例如,登陸www.baidu.com的時候,百度伺服器發送回的HTTP回應標頭中cookie是:

Set-Cookie:H_PS_PSSID=4681_4567_1452_9876_4759; BDSVRTM=74; path=/  

瀏覽器的HTTP請求標頭:

Cookie:BAIDUID=0FD996SDFG12********107B9C227F4C:FG=1;996SDFG12********107B9C227F4C:FG=1;996SDFG12********107B9C227F4C:FG=1; 345HH2818A9F4134E5A2D778D3B: FG=1; H_PS_LC=4_shadu2014; BD_CK_SAM=1; H_PS_PSSID=4681_4567_1452_9876_4759


瀏覽器將cookieTmain

cookie字串通常位於HTTP_COOKIE環境變數中,可以如下讀取:

import osPRint "Content-type: text/plainn"

if "HTTP_COOKIE" in os.environ:
   
else:
   print "HTTP_COOKIE not set!"

 Python中Cookie模組(python3中為http.cookies)提供了一個類似字典的特殊物件SimpleCookie,其中儲存並管理稱為Morselcookies)提供了一個類似字典的特殊物件SimpleCookie,其中儲存並管理稱為Morselcookie組合值的集合值。

每個Morsel都有name,value以及可選屬性(expires,path,domain,comment,max-age,secure,version,httponly)。

SimpleCookie可使用output()方法建立以HTTP標頭形式表示的cookie資料輸出,以js_output()方法產生包含javascript程式碼的字串。

用HTTP_COOKIE產生cookie:

cookie=Cookie.SimpleCookie(os.environ['HTTP_COOKIE'])

print cookie.output()

ation = datetime.datetime.now() + datetime.timedelta(days=30)

cookie = Cookie.SimpleCookie()

cookie["session"] = random.randint(1,1000000000)

cookie["session"]["session"]" domain"] = ".baidu.com"
cookie["session"]["path"] = "/"
cookie["session"]["expires"] = expiration.strftime("%a, %d- %b-%Y %H:%M:%S PST")

print "Content-type: text/plain"
print cookie.output()
print
print "Cookie set with: " + cookie.output( )


輸出:

Content-type: text/plain
Set-Cookie: session=155209565; Domain=.jayconrod.com; expires=Mon, 03-Mar-2014 07:42:47/d Cookie set with: Set-Cookie: session=155209565; Domain=.jayconrod.com; expires=Mon, 03-Mar-2014

 以上就是Python中Cookie的處理(一)Cookie庫的內容,更多相關內容請關注PHP中文網(www.php.cn)!



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn