zoukankan      html  css  js  c++  java
  • 《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_lettersstring.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=Noneheader='Set-Cookie:'sep=' '):返回一个适合作为HTTP头部发送的字符串表示,attrs和header被发送至各自Morsel的output()方法,sep用于连接头部默认为' '(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集是固定不变的(不区分大小写,默认值为' '.),有:

    • expires
    • path
    • comment
    • domain
    • max-age
    • secure
    • version
    • httponly

    Morsel.value:cookie的值

    Morsel.coded_value:cookie的编码值(用于网络传送)

    Morsel.key:cookie的名

    Morsel.set(keyvaluecoded_value):设置key、value和coded_value。

    Morsel.isReservedKey(K):K是否是Morsel的key集合中的成员。

    Morsel.output(attrs=Noneheader='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(keyvalue=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(filenamedelayload=Nonepolicy=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=Noneallowed_domains=Nonenetscape=Truerfc2965=Falserfc2109_as_netscape=Nonehide_cookie2=Falsestrict_domain=Falsestrict_rfc2965_unverifiable=Truestrict_ns_unverifiable=Falsestrict_ns_domain=DefaultCookiePolicy.DomainLiberalstrict_ns_set_initial_dollar=Falsestrict_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.

  • 相关阅读:
    codeforces 724G
    P4151 [WC2011]最大XOR和路径 线性基
    2018-2019 ACM-ICPC, Asia Seoul Regional Contest K TV Show Game 2-sat
    codeforces 1198E Rectangle Painting 2 最小点覆盖
    codeforces847J Students Initiation 网络流
    codeforces863F Almost Permutation 费用流
    codeforces1213F Unstable String Sort 思维
    codeforces1156D 0-1-Tree 并查集
    codeforces1156D 0-1-Tree 换根dp
    错误集合
  • 原文地址:https://www.cnblogs.com/miaoxiaonao/p/8640709.html
Copyright © 2011-2022 走看看