目录
四、Cookie
1、Cookie简介
简介:是工程师针对 http协议是无连接、无状态特性,所设计的 一种技术。 该技术可以在浏览器端存储用户的信息。
特性:
- cookie 用于存储用户临时的、不敏感的信息。
- cookie 位于浏览器(客户端)端。默认大小 4k(可以调整)
- cookie 中的数据,可以随意被访问,没有安全性可言。
- cookie 中存储的数据类型, 受浏览器限制。
2、Cookie+Session认证方式
在计算机中,认证用户身份的方式有多种!课程中接触2种:
- phpwind和ihrm项目:token认证。Postman接口测试05|实战项目笔记-优快云博客
- tpshop项目:cookie+Session认证。

3、案例:代码理解即可
完整实现 TPshop商城登录。
(针对tpshop商城:获取cookie的途径是,在登录界面,也就是首页,每次点击验证码图片,响应回来的数据会携带session_id, 之后登录时携带存储session_id的cookie就可以登录成功了)
- 获取验证码:http://demo6.tp-shop.cn/index.php?m=Home&c=User&a=verify
- 该url可以通过抓包获取:开发者工具-点击验证码图片-抓到get请求
- 登录:http://demo6.tp-shop.cn/index.php?m=Home&c=User&a=do_login&
- 我的订单:http://tpshoptest.itheima.net/Home/Order/order_list.html
五、Session(重要)
1、Session简介
简介:也叫 会话。通常出现在网络通信中,从客户端借助访问终端登录上服务器,直到退出登录 所产生的通信数据,保存在会话中。
特性:
- Session 用于存储用户的信息。
- Session 位于服务端。大小直接使用服务器存储空间。
- Session 中的数据,不能随意被访问,安全性较高。
- Session 中存储的数据类型,受服务器影响,几乎能支持所有的数据类型。
2、Session自动管理Cookie
因为 Cookie 中的数据,都是 Session 传递的。因此,Session 可以直接自动管理cookie
3、案例
- 创建一个 Session 实例。
- 使用 Session 实例,调 get方法,发送 获取验证码请求。(不需要获取cookie)
- 使用 同一个 Session 实例,调用 post方法,发送 登录请求。(不需要携带 cookie)
- 使用 同一个 Session 实例,调用 get方法,发送 查看我的订单请求。(不需要携带 cookie)
import requests
# 1. 创建一个 Session 实例。
session = requests.Session()
# 2. 使用 Session 实例,调 get方法,发送 获取验证码请求。(不需要获取cookie)
resp_v = session.get(url="http://tpshop-test.itheima.net/index.php?
m=Home&c=User&a=verify&r=0.21519623710645064")
# 3. 使用 同一个 Session 实例,调用 post方法,发送 登录请求。(不需要携带 cookie)
resp = session.post(url="http://tpshop-test.itheima.net/index.php?
m=Home&c=User&a=do_login&t=0.7094195931397276",
data={"username": "13012345678", "password": "12345678", "verify_code":
"8888"})
print(resp.json())
# 4. 使用 同一个 Session 实例,调用 get 方法,发送 查看我的订单请求。(不需要携带 cookie)
resp_o = session.get(url="http://tpshop-test.itheima.net/Home/Order/order_list.html")
print(resp_o.text)
六、Cookie和Session的区别
1. 数据存储位置: cookie存储在浏览器;session存储在服务器。
2. 安全性: cookie中的数据可以随意获取,没有安全性可言。Session的数据多为加密存储,安全较高!
3. 数据类型: cookie支持的数据类型受浏览器限制,较少;Session直接使用服务器存储,支持所有数据类型。
4. 大小: cookie大小默认 4k; Session 大小约为服务器存储空间大小。
七、获取指定响应数据(重要)
常用:
获取 URL:resp.url
获取 响应状态码:resp.status_code
获取 Cookie:resp.cookies
获取 响应头:resp.headers
获取 响应体:
文本格式:resp.text
json格式:resp.json()
import requests
resp = requests.get(url="http://www.baidu.com")
# - 获取 URL:resp.url
print("url =", resp.url)
# - 获取 响应状态码:resp.status_code
print("status_code =", resp.status_code)
# - 获取 Cookie:resp.cookies
print("cookies =", resp.cookies)
# - 获取 响应头:resp.headers
print("headers =", resp.headers)
# - 获取 响应体:
# - 文本格式:resp.text
print("body_text =", resp.text)
# - json格式:resp.json() 当显示 JSONDecodeError 错误时,说明 resp 不能转换为 json格式数据。
print("body_json =", resp.json())
全部内容:
Requests库01|使用Requests库发送 get/post/put/delete请求-优快云博客
789

被折叠的 条评论
为什么被折叠?



