python爬虫之Cookie和Session

什么是Cookie

  简单来说就是当用户通过http协议访问一个服务器的时候, 这个服务器会将一些Name/Value兼职对返回给客户端浏览器, 并将这些数据加上一些限制条件. 在条件符合时, 这个用户下次再访问服务器的时候, 数据又被完整的带给服务器.

  因为http是一种无状态协议, 用户首次访问web站点的时候, 服务器对用户一无所知. 而Cookie就像是服务器给每个来访问的用户贴的标签, 而这些标签就是对来访问的客户端的独有的身份的一个标识, 就想每个人的身份证一样, 带着你的个人信息. 而当一个客户端第一次连接过来的时候. 服务端就会给它打上一个标签, 就相当于给你发了一个身份证, 当你下载带着这个标签来的时候, 服务器就知道你是谁了. 所以Cookie是存在客户端的, 也就是存在浏览器中.

  Cookie中包含了一个由名字=值(name=value)形式构成的任意列表, 通过Set-Cookie或者Set-Cookie2 HTTP响应(扩展)收不将其贴到客户端身上.

Cookie的分类 :

  会话Cookie: 不设置过期时间, 保存在浏览器的内存中, 关闭浏览器, Cookie便被销毁.

  普通Cookie: 设置了过期的时间, 保存在硬盘上.

Cookie的属性 :

  最开始的cookie是网景公司定义的, 后来又有了RFC版本所以当前的Cookie有两个版本: Version 0和Version 1 它们有两种设置响应头的标识, 分别是: Set-Cookie和Set-Cookie2, 这也造成了一些属性的不同, 常用的版本为 Version 0.

  Version 0属性 :

    NAME=value: 键值对设置要保存的Name/Value, 这里的name不能和其他属性的名字相同

    Expirer: 过期时间

    Domain: 生成该Cookie的域名

    Path: 该Cookie是在当前的那个路径下生成

    Secure: 如果设置了这个属性, 那么只会在SSH连接是才会回传该Cookie

  Version 1属性 :

    Name=Value: 键值对设置要保存的name/value, 这里的name不能和其他属性的名字一样

    Comment: 主要用于说明该Cookie有什么用途

    CommentURL: 该服务器为此Cookie提供URL注释

    Discard: 是否在会话结束丢弃该Cookie, 默认为false

    Domain: 生成该Cookie的域名

    Max-Age: 最大的失效时间, 与Version 0不同的是这里设置的是在多少秒之后失效

    Path: 该Cookie是在当前的哪个路径下生成

    Port: 该Cookie在什么端口下可以回传服务器, 如果有多个端口, 以逗号隔开

    Secure: 如果设置了该属性, 那么只会在SSH连接时才会回传该Cookie


关于Session

  Cookie可以让服务器跟踪每个客户端的访问, 但是每次客户端的访问都必须传回这些Cookie, 如果Cookie很多, 这就增加饿了客户端与服务器的数据传输量, 而Session的出现正式为了解决这个问题.

  同一个客户端每次和服务端交互时, 不需要每次都传回所有的Cookie值, 而是只要传回一个ID, 这个ID是客户端第一次访问服务器的时候生成的, 而且每个客户端是唯一的. 这样每个客户端就有了一个唯一的ID, 客户端只要传回这个ID就可以了, 这个ID通常是name为jsesionid的一个Cookie. 所以Session其实是利用Cookie进行信息处理的.

  1. cookie和session的共同之处在于: cookie和session都是用来跟踪浏览器用户身份的会话方式

  2. cookie和session的区别是: cookie数据保存在客户端, session数据保存在服务端

  3. cookie不是很安全, 别人可以分析存放存放在本地的cookie并进行cookie欺骗, 如果主要考虑到安全应该使用session, 当然也没有绝对的安全, 只是相对于cookie, session更安全

  4. session会在一定时间内保存在服务器上. 当访问增多, 会比较占用你服务器的性能, 如果主要考虑到减轻服务器性能, 应该使用Cookie

  5. cookie和session 各有优缺点, 所以讲登录信息等重要信息存放为session; 其他信息如果需要保留, 可以放在cookie中.

原文地址:https://www.cnblogs.com/dong-/p/10314925.html