您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

python使用cookie库操保存cookie详解

2024/5/21 20:32:52发布21次查看
cookie用于服务器实现会话,用户登录及相关功能时进行状态管理。要在用户浏览器上安装cookie,http服务器向http响应添加类似以下内容的http报头:
代码如下:
set-cookie:session=8345234;expires=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; path=/; domain=.baidu.com
set-cookie:bdsvrtm=74; path=/
浏览器的http请求报头:
代码如下:
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发送回http服务器时,使用key=value字符串的编码形式,不返回expires,path和domain等可选属性。
cookie字符串通常位于http_cookie环境变量中,可以如下读取:
代码如下:
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模块(python3中为http.cookies)提供了一个类似字典的特殊对象simplecookie,其中存储并管理着称为morsel的cookie值集合。
每个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()
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] = /
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 pst; path=/
cookie set with: set-cookie: session=155209565; domain=.jayconrod.com; expires=mon, 03-mar-2014 07:42:47 pst; path=/
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product