cookie 和 session

news/2024/10/13 16:43:53

1、cookie

通过在客户端记录的信息确定用户身份。

http是一种无连接协议,客户端和服务端交互仅限于请求/响应过程,结束后断开,下一次请求时,服务端会认为是一个新的客户端。
为了维护连接,让服务端知道这是前一个用户发起的请求,必须在一个地方保存客户端信息。

2、session

session,中文称为会话,通过在服务端记录的信息确定用户身份,这个 session 指的就是一个会话。
其本义是指有始有终的一些列动作、消息。
例如打电话时,从拿起电话拨号到挂断之间的一系列过程,就可以称之为一个 session。

3、好处

这样做的好处就是,用户只需要输入一次账号密码,之后再访问网页时,只需要 headers 信息利用 cookie 包含 session_id,后台就可以根据 session_id 来判断用户是否登录。

4、代码示例

import requestsurl = 'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2024-10-17&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36','cookie': '_uab_collina=172880592022560712805691; JSESSIONID=2BA6A3A24B6271AA97DD6A46B8EF437E; tk=DYzBUxRQTLtyeOk98rEybDeXARpmYQ57x3M2Iw_-rQE4eafas; BIGipServerotn=2095579402.50210.0000; BIGipServerpassport=9211563452.50215.0000; guidesStatus=off; highContrastMode=defaltMode; cursorStatus=off; route=495c805987d0f5c8c84b14f60212447d; uKey=8e30273e95b5faffad65e950c957c09a8de3956d1ce2f57f8b1529c19dba9fb6; _jc_save_fromStation=%u5317%u4EAC%2CBJP; _jc_save_toStation=%u4E0A%u6D77%2CSHH; _jc_save_toDate=2024-10-13; _jc_save_wfdc_flag=dc; _jc_save_fromDate=2024-10-17'
}
session = requests.session()
res = session.get(url, headers=headers)
data = res.json()
print(data)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/71117.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2024-2025-1 20241318 《计算机基础与程序设计》第三周工作总结

这个作业属于哪个课程 <(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)>(如[2024-2025-1-计算机基础与程序设计]这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标 数字分类与计数法位置计数法进制转换模拟数据与数字…

Qt/C++开源控件 圆形进度条

Qt/C++开源控件 圆形进度条简约风格: 设计简洁,没有多余的元素,清晰地显示了当前进度。 颜色对比: 使用了亮色的蓝色来标示进度,与深色背景形成鲜明对比,使得进度指示一目了然。 清晰的刻度: 刻度线清晰,尽管没有标注所有数字,但通过较长的刻度线在50和100的位置,用户可…

GIC V3中断

GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1~V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于ARM64服务器系统结构)。目前在ARM官方网站只能下载到Version 2的GIC architecture…

销售团队管理过程常见问题

一、招聘与选拔 在竞争激烈的市场环境中,寻找并选拔出既有能力又符合企业文化的销售人才是企业面临的首要挑战。优秀销售人才的稀缺性加剧了这一难题,而仅凭面试难以全面评估候选人的销售潜力和坚韧精神。因此,设计一套高效、多维度的招聘流程与评估标准显得尤为关键。这包括…

requests模块 - get

1、Requests 请求常用url:请求的 url 地址,接口文档标注的接口请求地址。 params:请求数据中的链接,常见的一个 get 请求,请求参数都是在 url 地址中。 data:请求数据,参数表单的数据格式。 json:接口常见的数据请求格式。 headers:请求头信息,http 请求中,比如说编…

Redis 必知概念

Redis 为什么快基于内存实现:Redis 将数据存储在内存中,读写操作不会受到磁盘 IO 速度限制; CPU 不是 Redis 的瓶颈,Redis 的瓶颈在于机器内存的大小或者网络带宽I/O多路复用模型的使用:Redis 线程不会阻塞在某一个特定的客户端请求处理上; 可以同时和多个客户端连接并处…

用sdkman管理多个jdk切换

前言 最近项目前后端进行升级,需要在jdk8和jdk17两个版本切换。最简单的是通过手动切换,但切换过程太繁琐,修改环境变量,达到切换目的。于是尝试其它解决方案,最终确实使用sdkman工具。sdkman 是一款面向Java开发者的命令行工具,旨在简化操作系统上SDKs的管理。支持跨平台…

20242822《Linux内核原理与分析》第三周作业

张晓攀+原创作品转载请注明出处+《Linux内核分析》MOOC课程https://mooc.study.163.com/course/1000029000 一、实验楼上实验二——mykernel实验指导(操作系统是如何工作的) 1.使用实验楼的虚拟机打开shell输入所给命令这段代码的意思是应用一个补丁文件到Linux内核源代码,配…