前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTTP协议无状态,该怎么解决?

HTTP协议无状态,该怎么解决?

原创
作者头像
阿秋数据采集
发布2023-02-20 17:13:14
4290
发布2023-02-20 17:13:14
举报
文章被收录于专栏:HTTP教程HTTP教程

HTTP协议无状态,书面点的说法是指协议对于交互性场景没有记忆功能,直白点的说,就是HTTP刷新后,不记得你之前做了什么设置,通常要解决cookie记录登录状态的方法有以下几种:

1.直接把用户名和密码保持到cookie中,不过目前此类方法风险比较大,一般不把密码等重要信息保存到Cookie中。

2.把密码加密后保存到Cookie中,下次访问时解密并与数据库比较。

3.加密账号后连同账号一块保存到Cookie中。

4.利用session会话将cookies等值自动传到下一个接口。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

手动传cookies有一定的繁琐:

代码语言:javascript
复制
import requests
 
# 登录接口
log_url = "http://shopxo.hctestedu.com/index.php?s=/index/user/login.html"
# 登录参灵敏
data = {"accounts": "longge",
        "pwd": "888888"}
# 头部信息
head = {"X-Requested-With": "XMLHttpRequest"}
login_response = requests.post(log_url, data=data, headers=head)
 
# 获取cookie,传给下面订单接口
cookie = login_response.cookies
 
# 订单接口
order_url = "http://shopxo.hctestedu.com/index.php?s=/index/cart/index.html"
order_response = requests.get(order_url, cookies=cookie)
print(order_response.text)

不过我们也可以尝试session会话管理,订单接口自动带上cookeis,这样我们就可以保持会话,将cookies等值自动传到下一个接口:

代码语言:javascript
复制
import requests
 
# 登录接口
log_url = "http://shopxo.hctestedu.com/index.php?s=/index/user/login.html"
# 登录参灵敏
data = {"accounts": "longge",
				"pwd": "888888"}
# 头部信息
head = {"X-Requested-With": "XMLHttpRequest"}
 
# 实例化session对像
session = requests.session()
 
login_response = session.post(log_url, data=data, headers=head)
 
# 订单接口
order_url = "http://shopxo.hctestedu.com/index.php?s=/index/cart/index.html"
# 不用手动传入cookies值,因为session自动带上了
order_response = session.get(order_url)
print(order_response.text)
# 打印cookies
print(session.cookies)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档