国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python處理cookie詳解

2020-02-23 05:08:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

要在用戶瀏覽器上安裝cookie,HTTP服務(wù)器向HTTP響應(yīng)添加類似以下內(nèi)容的HTTP報(bào)頭:

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

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

路徑"path"用于設(shè)置可以讀取一個(gè)cookie的最頂層的目錄.

將cookie的路徑設(shè)置為你的網(wǎng)頁(yè)最頂層的目錄可以讓該該目錄下的所有網(wǎng)頁(yè)都能訪問(wèn)該cookie.

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

domain:有些網(wǎng)站有許多小的域名,例如百度可能還在"news.baidu.com" "zhidao.baidu.com" 和"v.baidu.com" 域名下有網(wǎng)頁(yè).

如果想讓"baidu.com"下的所有機(jī)器都可以讀取該cookie,必須在cookie中加入 "domain=.baidu.com" .

用戶瀏覽器會(huì)存儲(chǔ)Cookie直到過(guò)期,瀏覽器會(huì)向符合path和domain的服務(wù)器發(fā)送類似以下內(nèi)容的HTTP請(qǐng)求報(bào)頭:
代碼如下:
Cookie:session=8345234。

例如,登陸www.baidu.com的時(shí)候,百度服務(wù)器發(fā)送回的HTTP響應(yīng)報(bào)頭中cookie是:

代碼如下:
Set-Cookie:H_PS_PSSID=4681_4567_1452_9876_4759; path=/; domain=.baidu.com
Set-Cookie:BDSVRTM=74; path=/

瀏覽器的HTTP請(qǐng)求報(bào)頭:

代碼如下:
Cookie:BAIDUID=0FD996SDFG12********107B9C227F4C:FG=1; locale=zh; bdshare_firstime=1384567418140; NBID=D830DD2345HH2818A9F4134E5A2D778D3B:FG=1; H_PS_LC=4_shadu2014; BD_CK_SAM=1; H_PS_PSSID=4681_4567_1452_9876_4759

瀏覽器將cookie發(fā)送回HTTP服務(wù)器時(shí),使用key=value字符串的編碼形式,不返回expires,path和domain等可選屬性。

cookie字符串通常位于HTTP_COOKIE環(huán)境變量中,可以如下讀取:

代碼如下:
import os
print "Content-type: text/plain/n"
if "HTTP_COOKIE" in os.environ:
    print os.environ["HTTP_COOKIE"]
else:
    print "HTTP_COOKIE not set!"

Python中Cookie模塊(python2,python3中為http.cookies)提供了一個(gè)類似字典的特殊對(duì)象SimpleCookie,其中存儲(chǔ)并管理著稱為Morsel的cookie值集合。

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

SimpleCookie可使用output()方法創(chuàng)建以HTTP報(bào)頭形式表示的cookie數(shù)據(jù)輸出,用js_output()方法生成包含javascript代碼的字符串。

用HTTP_COOKIE生成cookie:

代碼如下:
cookie=Cookie.SimpleCookie(os.environ['HTTP_COOKIE'])
print cookie.output()

set cookie:

代碼如下:
import Cookie
import datetime
import random

expiration = datetime.datetime.now() + datetime.timedelta(days=30)
cookie = Cookie.SimpleCookie()
cookie["session"] = random.randint(1,1000000000)
cookie["session"]["domain"] = ".baidu.com"
cookie["session"]["path"] = "/"

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岚皋县| 宁蒗| 凤冈县| 谷城县| 亳州市| 甘泉县| 雷州市| 桐庐县| 三门峡市| 衡阳市| 延川县| 高淳县| 郯城县| 方正县| 镇赉县| 江华| 靖州| 神池县| 全州县| 遵化市| 电白县| 祥云县| 桃园县| 德庆县| 广西| 巩留县| 仙居县| 阿拉善盟| 贵溪市| 建阳市| 鄂伦春自治旗| 卢湾区| 汾阳市| 祁阳县| 保康县| 临沧市| 咸阳市| 石屏县| 黔江区| 巨鹿县| 台安县|