《The Python Standard Library》——http模块阅读笔记3
http.cookies — HTTP state management
http.cookies模块定义了一系列类来抽象cookies这个概念,一个HTTP状态管理机制。该模块支持string-only的简单cookies,也支持任意序列化数据类型(serializable data-type)作为cookie的value.
该模块允许下列字符集都可以作为有效字符来表示Cookie name(as key):字符集,string.ascii_letters, string.digits and !#$%&'*+-.^_`|~ : 。
当遇到无效cookie时,调用CookieError。
exception http.cookies.CookieError
class http.cookies.BaseCookie([input]):该类是一个类似字典的对象(keys为字符串,values为 Morsel 实例)。一旦将一个value赋予给一个key,value就会被说先转换成包含key和value的Morsel。
class http.cookies.SimpleCookie([input]):继承自BaseCookie类,并重写了str(),将value_decode()和value_encode()重写成一致。
1.1 Cookie Objects
BaseCookie.value_decode(val):返回一个字符串的解码值,返回值可以为任何类型。它没啥用,就是为重写而生的(This method does nothing in BaseCookie — it exists so it can be overridden.)
BaseCookie.value_encode(val):返回一个编码值,val可以为任何类型,但返回的必须是string。作用同上。
BaseCookie.output(attrs=None, header='Set-Cookie:', sep='\r\n'):返回一个适合作为HTTP头部发送的字符串表示,attrs和header被发送至各自Morsel的output()方法,sep用于连接头部默认为'\r\n'(CRLF)
BaseCookie.js_output(attrs=None):返回一个嵌入式JavaScript片段。
BaseCookie.load(rawdata):若rawdata为一个字符串,将其作为一个HTTP_COOKIE解析并从那里将values作为Morsel添加。若rawdata为一个字典,就等价于:
for k, v in rawdata.items():
cookie[k] = v
1.2 Morsel Objects
class http.cookies.Morsel
Mosels是一种类似字典的对象,它的key集是固定不变的(不区分大小写,默认值为' '.),有:
expirespathcommentdomainmax-agesecureversionhttponly
Morsel.value:cookie的值
Morsel.coded_value:cookie的编码值(用于网络传送)
Morsel.key:cookie的名
Morsel.set(key, value, coded_value):设置key、value和coded_value。
Morsel.isReservedKey(K):K是否是Morsel的key集合中的成员。
Morsel.output(attrs=None, header='Set-Cookie:'):返回一个适合作为头部发送的Mosel的字符串表示。头部应为默认的“Set-Cookie:”
Morsel.js_output(attrs=None):返回一个嵌入式JS片段
Morsel.OutputString(attrs=None):返回一个表示Mosel的字符串
Morsel.update(values):values是一个字典,更新对应key的值。key不对raise error。
Morsel.copy(value):返回一个Morsel的浅复制。
Morsel.setdefault(key, value=None):key与上述给出的属性不符时raise一个error.
http.cookiejar — Cookie handling for HTTP clients
http.cookiejar模块定义了一系列类用于自动处理HTTP cookies.
需要注意的是,模块urllib.request实现了自动处理cookies(URL opening with automatic cookie handling.)。
该模块定义的异常:
exception http.cookiejar.LoadError
当从一个文件中加载cookies失败时,FileCookieJar的实例就会raise该异常。LoadError是OSError的一个子类。
该模块提供了下列类:
class http.cookiejar.CookieJar(policy=None):policy是指向CookiePolicy接口的一个对象。
CookieJar类存储了HTTPcookies.它可以从requests里面提取cookies,也可以通过respenses返回cookies.
CookieJar的实例必要情况下会自动终止包含的cookies。其子类也是负责从文件或数据库中存储和检索cookies。
class http.cookiejar.FileCookieJar(filename, delayload=None, policy=None):policy是指向CookiePolicy接口的一个对象。
Cookies are NOT loaded from the named file until either the load() or revert() method is called
class http.cookiejar.CookiePolicy:该类决定是否从服务器接收cookies或向服务器提交cookies
class http.cookiejar.DefaultCookiePolicy(blocked_domains=None, allowed_domains=None, netscape=True, rfc2965=False, rfc2109_as_netscape=None, hide_cookie2=False, strict_domain=False, strict_rfc2965_unverifiable=True, strict_ns_unverifiable=False, strict_ns_domain=DefaultCookiePolicy.DomainLiberal, strict_ns_set_initial_dollar=False, strict_ns_set_path=False)
class http.cookiejar.Cookie:该类表示Netscape、RFC2109和RFC2965定义的cookies。
1. CookieJar and FileCookieJar Objects
2. FileCookieJar subclasses and co-operation with web browsers
3.CookiePolicy Objects
4. DefaultCookiePolicy Objects
5. Cookie Objects
Module http.cookiejar
HTTP cookie handling for web clients. The http.cookiejar and http.cookies modules do not depend on each other.
《The Python Standard Library》——http模块阅读笔记3的更多相关文章
- Python Standard Library
Python Standard Library "We'd like to pretend that 'Fredrik' is a role, but even hundreds of vo ...
- Python 日期时间处理模块学习笔记
来自:标点符的<Python 日期时间处理模块学习笔记> Python的时间处理模块在日常的使用中用的不是非常的多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的 ...
- Python语言中对于json数据的编解码——Usage of json a Python standard library
一.概述 1.1 关于JSON数据格式 JSON (JavaScript Object Notation), specified by RFC 7159 (which obsoletes RFC 46 ...
- The Python Standard Library
The Python Standard Library¶ While The Python Language Reference describes the exact syntax and sema ...
- 《The Python Standard Library》——http模块阅读笔记1
官方文档:https://docs.python.org/3.5/library/http.html 偷个懒,截图如下: 即,http客户端编程一般用urllib.request库(主要用于“在这复杂 ...
- 《The Python Standard Library》——http模块阅读笔记2
http.server是用来构建HTTP服务器(web服务器)的模块,定义了许多相关的类. 创建及运行服务器的代码一般为: def run(server_class=HTTPServer, handl ...
- python os os.path模块学习笔记
#!/usr/bin/env python #coding=utf-8 import os #创建目录 os.mkdir(r'C:\Users\Silence\Desktop\python') #删除 ...
- Python Standard Library 学习(一) -- Built-in Functions 内建函数
内建函数列表 Built-in Functions abs() divmod() input() open() staticmethod() all() enumerate() int() ord() ...
- Python内置模块和第三方模块
1.Python内置模块和第三方模块 内置模块: Python中,安装好了Python后,本身就带有的库,就叫做Python的内置的库. 内置模块,也被称为Python的标准库. Python 2.x ...
随机推荐
- java.lang.ClassNotFoundException: org.springframework.orm.hibernate3.LocalSessionFactoryBean
Caused by: java.lang.ClassNotFoundException: org.springframework.orm.hibernate3.LocalSessionFactoryB ...
- HDU 6096 String (AC自动机)
题意:给出n个字符串和q个询问,每次询问给出两个串 p 和 s .要求统计所有字符串中前缀为 p 且后缀为 s (不可重叠)的字符串的数量. 析:真是觉得没有思路啊,看了官方题解,真是好复杂. 假设原 ...
- CSS 学习-文本 段落
段落. 首行缩进 text-indent属性 比如缩进 <p style="text-indent: 2em;">这里是内容....</p> 这里是内容这 ...
- js阿拉伯数字转中文大写 方法重多
方法一 function DX(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "数据非法"; var unit = &qu ...
- CF869C The Intriguing Obsession(组合数学瞎搞,O(n)莫名过)
— This is not playing but duty as allies of justice, Nii-chan! — Not allies but justice itself, Onii ...
- c3p0-数据库连接池原理
一直用c3p0很久了,但也没时间或没主动去研究过,直到最近频频在出现一些莫名其妙的问题,觉得还是有必要了解和研究一下. c3p0是什么 c3p0的出现,是为了大大提高应用程序和数据库之间访问效率的. ...
- [转]Control的Invoke和BeginInvoke
转自:Control的Invoke和BeginInvoke 作者:Kuffy Wang 近日,被Control的Invoke和BeginInvoke搞的头大,就查了些相关的资料,整理如下.感谢这篇文 ...
- Linux常用命令,学的时候自己记的常用的保存下来方便以后使用 o(∩_∩)o 哈哈
service httpd restart 重启Apache service mysqld restart 重启mysql [-][rwx][r-x][r--] 1 234 567 890 421 4 ...
- Sql Server 2012 数据库同步方式 (发布、订阅)
上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作.发布订阅份为两个步骤:1.发布.2订阅.首先在数据源数据库服务器上对需要同步的数 ...
- [USACO09FEB] 改造路Revamping Trails | [JLOI2011] 飞行路线
题目链接: 改造路 飞行路线 其实这两道题基本上是一样的,就是分层图的套路题. 为什么是分层图呢?首先,我们的选择次数比较少,可以把这几层的图建出来而不会爆空间.然后因为选择一个边权为0的路线之后我们 ...