Cookie和Session的区别

Cookie

Cookie简介

工程师 针对 http协议是无连接、无状态特性,设计的 一种技术。 可以在浏览器端 存储用户的信息。

  • cookie 用于存储 用户临时的不敏感信息。
  • cookie 位于浏览器(客户端)端。默认大小 4k(可以调整)
  • cookie 中的数据,可以随意被访问,没有安全性可言。
  • cookie 中存储的数据类型, 受浏览器限制

Cookie+Session认证方式

Cookie案例

完整实现 TPshop商城登录,并获取 “我的订单” 页面数据。

import requests

# 发送 获取验证码请求
resp_v = requests.get(url="https://demo6.tp-shop.cn/index.php?m=Home&c=User&a=verify&r=0.8499713160376936")

# 从获取验证码 的响应结果,提取 cookie
my_cookie = resp_v.cookies
# # 发送登录请求 url、请求头、请求体。 携带 cookie。 得响应结果
resp = requests.post(url="https://demo6.tp-shop.cn/index.php?m=Home&c=User&a=do_login&t=0.0991908925403584",
                     #headers={"Content-Type": "application/x-www-form-urlencoded"},
                     data={"username": "15673271937", "password": "123456", "verify_code": "JSXG"},
                     cookies=my_cookie)

#打印响应结果
print(resp.json())

#发送 查看我的订单 请求
resp_o = requests.get(url="https://demo6.tp-shop.cn/index.php/Home/Order/order_list.html", cookies=my_cookie)
print(resp_o.text)

get验证码获取

在这里插入图片描述
在这里插入图片描述

post请求登录密码错误

在这里插入图片描述

订单获取

在这里插入图片描述

Session

Session简介

也叫会话。通常出现在网络通信中,从客户端借助访问终端登录上服务器,直到退出登录所产生的通信数据,保存在会话中。

  • Session 用于存储用户的信息。
  • Session 位于服务端。大小直接使用服务器存储空间。
  • Session 中的数据,不能随意被访问,安全性较高。
  • Session 中存储的数据类型,受服务器影响,几乎能支持所有的数据类型。

Session自动管理Cookie

因为 Cookie 中的 数据,都是 Session 传递的。因此,Session 可以直接 自动管理 cookie。

Session案例

借助session重新实现 上述 TPshop商城登录,并获取 “我的订单” 页面数据。

在这里插入图片描述

import requests

# 1. 创建一个 Session 实例。
session = requests.Session()

# 2. 使用 Session 实例,调 get方法,发送 获取验证码请求。(不需要获取cookie)
resp_v = session.get(url="https://demo6.tp-shop.cn/index.php?m=Home&c=User&a=verify&r=0.8499713160376936")

# 3. 使用 同一个 Session 实例,调用 post方法,发送 登录请求。(不需要携带 cookie)
resp = session.post(url="https://demo6.tp-shop.cn/index.php?m=Home&c=User&a=do_login&t=0.0991908925403584",
                    data={"username": "15673271937", "password": "339455", "verify_code": "JSXG"})
print(resp.json())

#4. 使用 同一个 Session 实例,调用 get 方法,发送 查看我的订单请求。(不需要携带 cookie)
resp_o = session.get(url="https://demo6.tp-shop.cn/index.php/Home/Order/order_list.html")
print(resp_o.text)

面试题 Cookie 和 Session 区别

数据存储位置

cookie存储在浏览器;session存储在服务器

数据存储位置

cookie中的数据可以随意获取,没有安全性可言。Session的数据多为加密存储,安全较高

数据类型

cookie支持的数据类型受浏览器限制,较少;Session直接使用服务器存储,支持所有数据类型

大小

cookie大小默认 4k; Session 大小约为服务器存储空间大小

获取指定响应数据

获取 URL:resp.url
获取 响应状态码:resp.status_code
获取 Cookie:resp.cookies
获取 响应头:resp.headers
获取 响应体:

  • 文本格式:resp.text
  • json格式:resp.json()
  • 35
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值