zoukankan      html  css  js  c++  java
  • Python + request接口测试中Cookie和Session的获取和使用

    Cookie和Session的简单理解    

        由于Http协议是无状态的,所以产生了cookie和session进行状态的管理。

        从哪里来,在哪里,到哪里去:

            --> Cookie是由服务端生成,存储在响应头中,返回给客户端,客户端会将cookie存储下来。

            --> Session是由服务端生成,存储在服务端的内存、缓存、数据库等地方。

            --> 在客户端发送请求时,user-agent会自动获取本地存储的cookie,将cookie信息存储在

                  请求头中,发送给服务端。

            --> 请求都是由客户端发起的,当服务端生成了session,客户端如何获取:

                  1)在客户端发送请求给服务端后,服务端会根据请求信息生成session,同时生成一个

                      session_id,通过cookie返回给客户端。

                  2)客户端再次向服务端发送请求时,会通过cookie将这个session_id发送给服务端,

                      这样相当于带上了session的标示。

            --> cookie可以作为管理session的一种方式,当cookie被禁用时,可以通过表单或重写

                   url传送session_id。

    requests实现cookie操作

        --> cookie包含在响应中,要获取响应中的cookie信息,可以用r.cookies.get_dict()获取响应

               的cookie信息,并传递给后续请求。

        --> 找一个不会被进行验证的网站进行练习,从输出信息中,可以看到,第2个请求使用了第一

              个请求响应头中的cookies信息,保持了连接

        

        --> 在已知cookie信息时,需要构造成对应的cookie对象传递给请求时,可以采用Cookie的返回

               对象为RequestsCookieJar或者字典构造。

        --> RequestsCookieJar构造cookie是已知登录响应返回的cookies信息,通过创建对象,设置对

              应的值进行构造传递。

        

        --> 采用字典构造cookies信息,将构造方式更改为:

              cookies = dict(zentaosid='5qm86pvshjm3s8u729cmc0mb15')

    会话对象session

        会话对象让你能够跨请求保持某些参数。它也会在同一个Session实例发出的所有请求之间保持

        cookie。所以如果你向同一主机发送多个请求,底层的TCP连接将会被重用,从而带来显著的

        性能提升。

        --> session会自动管理cookie,一个session对象会保持同一个会话中的所有请求之间的cookie

              信息。

        

        总结:

            --> 会话对象session比cookie更方便管理请求的cookie信息

            --> 服务器返回的cookie信息通常在响应头中

            --> 如果需要将响应体中的部分信息传递给后续的请求的cookie,可以构造cookie信息并传递

       

            

  • 相关阅读:
    python基础学习4(内置函数)
    python基础学习5(包与模块)
    放弃用你的InnerHTML来输出HTML吧,jQuery Tmpl不详细讲解
    Entity Framework 4.1 CodeFirst实例
    .net企业库数据处理模块使用DAAB来开发应用
    行转列和列转行
    读懂这100这句话,你会懂得很多
    iis 6 下有关gzip 的有关配置
    jquery 设置 Select CheckBox Radio
    SQL函数说明大全
  • 原文地址:https://www.cnblogs.com/ljfight/p/9622045.html
Copyright © 2011-2022 走看看