首页 > 其他分享 >HTTP协议无状态,该怎么解决?

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

时间:2023-02-20 17:31:41浏览次数:32  
标签:协议 cookies HTTP index url 状态 response session order

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

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

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

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

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

手动传cookies有一定的繁琐: 

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等值自动传到下一个接口:

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)



标签:协议,cookies,HTTP,index,url,状态,response,session,order
From: https://blog.51cto.com/u_15889524/6069066

相关文章

  • HTTP是什么
    HTTP是什么一、HTTP是什么HTTP全称为HyperTextTransferProtocol,被译为超文本传输协议,是互联网上应用最为广泛的—种网络协议。**HTTP协议是在Web上进行数据交换的......
  • 解析HTTP/2如何提升网络速度
    我们知道HTTP/1.1为网络效率做了大量的优化,最核心的有如下三种方式:增加了持久连接;浏览器为每个域名最多同时维护6个TCP持久连接;使用CDN的实现域名分片机制。虽然HTT......
  • 网络如何运作——详细DNS、HTTP、网站
    DNS什么是DNS?DNS(域名系统)为我们提供了一种简单的方式来与互联网上的设备进行通信,而无需记住复杂的数字。就像每个房子都有一个唯一的地址可以直接向它发送邮件一样,互联网......
  • iChatGPT用户协议
    InordertouseiChatGPTanditsservices,youshouldreadandabidebythe"iChatGPTLicenseAgreement"(hereinafterreferredtoas(thisagreement).Asepar......
  • 项目一众筹网02_3_登录状态的检查、检查用户有没有登录
    系列文章目录文章目录​​系列文章目录​​​​15-登录检查-目标和思路​​​​16--登录检查-创建拦截器类​​​​17-登录检查-注册拦截器类​​​​完成以后测试一下看看......
  • HTTP could not register URL http://+:8000/testservice/. Your...
     今天继续调试WCFWebAPI源代码,方向是跟踪其单元测试,结果一上手就出了一个错误: HTTPcouldnotregisterURLhttp://+:8000/testservice/.Yourprocessdoesnoth......
  • 外汇天眼:本周监管状态更新,以下平台一定要远离!
    监管信息早知道!外汇天眼将每周定期公布监管牌照状态发生变化的交易商,以供投资者参考,规避投资风险。以下是监管牌照发生变动的交易商平台,注意警惕!ACCUINDEXACCUINDEX,其对外宣......
  • javaEE005.03 HTTP通信协议和报文、STS中tomcat目录分析、响应码 200、404、500、302
    系列文章目录文章目录​​系列文章目录​​​​前言​​​​一、tomcat目录分析​​​​二、HTTP协议​​​​1、简介:简介一般就是什么ssHTTP​​​​2.发展历程​​​​3......
  • HTTP 方法
    GET方法请注意,查询字符串(名称/值对)是在GET请求的URL中发送的:/test/demo_form.php?name1=value1&name2=value2有关GET请求的其他一些注释:GET请求可被缓存GE......
  • HTTP 状态消息
     当浏览器从web服务器请求服务时,可能会发生错误。以下列举了有可能会返回的一系列HTTP状态消息:1xx:信息消息:描述:100Continue服务器仅接收到部分请求,如果......