【网络】Cookie&Session

发布于:2025-02-11 ⋅ 阅读:(77) ⋅ 点赞:(0)

长期更新各种好文,建议关注收藏点赞!

Cookie

针对http协议无连接、无状态设计的可以在浏览器端存储用户临时不敏感信息,默认大小4k,可以随意访问,没有安全性,存储的数据类型受浏览器限制。

Session

会话,用户登陆期间产生的通信数据保存在session中,是服务端中存储的用户信息,不能随意访问,安全性较高,存储的大小和数据类型由服务器决定。

  • session自动管理cookie
    cookie中的数据都需要服务器传递session_id过来,故收到服务器管理的session管理。故在实例中可以不用手动处理这些,见下方所示。
  • 举个栗子🌰
    创建1个session实例
    使用session实例,调用get,获取验证码 (无需获取cookie)
    继续使用session实例,调用post,发送登陆请求(无需携带cookie)
    继续使用session实例,调用get,发送获取我的订单请求(无需携带cookie)
import requests
#代码中全程见不到cookie的处理
session =requests.Session()
resp_v=session.get(url="verifycode_path")
resp_login=session.post(url="login_path",data={
	"username":username,
	"password":password,
	"verify_code":verifycode,
})
print(resp_login.json())
resp_order=session.get(url="order_url")
print(resp_order.json())
'''
获取指定的响应数据
resp.url
resp.status_code
resp.cookies
resp.headers
resp.text /json()
注意:不是所有响应数据都能用json()转换过来!!
'''

Cookie+Session认证方式

认证用户身份方式有多种。包括token,cookie+session认证。
在这里插入图片描述

import requests
resp_v=requests.get(url="verifycode_path")
my_cookie=resp_v.cookies
resp_login=requests.post(url="login_path",data={
	"username":username,
	"password":password,
	"verify_code":verifycode,
},cookies=my_cookie)
print(resp_login.json())
resp_order=requests.get(url="order_url",cookies=my_cookie)
print(resp_order.json())

Cookie v.s. Session

数据存储位置:浏览器 ; 服务器;
安全性:随机获取;加密存储;
数据类型:受浏览器限制;服务器存储,支持所有数据类型;
大小:默认4k;服务器空间大小;


网站公告

今日签到

点亮在社区的每一天
去签到