当前位置: 首页 > news >正文

Cookie和Session

目录

一、引入

二、Cookie

三、Session


一、引入

        在我们日常使用浏览器访问某些网址的时候,比如bilibili或者爱奇艺等等,我们会发现只需要在首次登录之后,就有很长一段时间不需要再次登录,而能直接访问。这是为什么呢?

        我们知道HTTP协议是无状态,无连接的一种协议。无状态是指服务器不具备对事务处理的记忆能力,即每一次的请求都是独立的,只要客户端发送一次请求,服务器就处理并立即响应,下一次再来一个请求继续处理响应,各个处理响应之间是没有任何联系的,不能通过之前的请求来影响当下的请求。而无连接是因为HTTP协议是基于TCP协议,一次请求中建立一个连接,用来处理响应,当该请求结束后,立马断开该连接。这使得服务器能处理大量的短暂请求。

        那么为什么我们在bilibili中刷视频,是向服务器发送多次请求,按道理来说每一次的请求都应该是独立的,则每一次请求都应该提交一次身份信息,比如登录信息,vip信息,然后才由服务器接受请求,判断请求的合法性以及身份性,最后才能产生响应。但是事实并非如此,这其实是因为,浏览器帮我们自动完成了上述身份信息的提交步骤,我们把这个称为cookie。

二、Cookie

        HTTP Cookie(也称为 Web Cookie、浏览器 Cookie 或简称 Cookie)是服务器发送到
用户浏览器并保存在浏览器上的一小块数据,它会在浏览器之后向同一服务器再次发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态、记录用户偏好等。

        在客户端向服务器发送请求的时候,服务器会把客户端的身份信息等,记录到一起,然后返回给浏览器,浏览器会把这个Cookie信息记录在自己的内存或者文件中。这样在以后向该浏览器发送请求的时候,浏览器就自动把该Cookie信息添加到HTTP的报文中,交给服务器来解析。

        但是由于该Cookie信息是直接存储在客户端的浏览器中的,且cookie中保存了许多用户的私密信息,所以存在被篡改或窃取风险。

其他可选属性的解释

三、Session

        session是为了应对Cookie的安全问题而产生的,他的本质和Cookie类似,都是用来保存用户的基本信息,唯一不同的是,Session不再是将基本信息保存在客户端浏览器中,而是在服务器端统一管理,返回给客户端的仅仅是一个Session_id(即客户端的Cookie中只存了这一个信息,而没有存储用户信息),通过这个Session_id可以再服务器中找到对应的Session对象,从而找到里面存储的信息。

相关文章:

  • 电商行业门店管理软件架构设计与数据可视化实践
  • vue3,Element Plus中隐藏菜单el-menu滚动条
  • 实战指南:构建高可用生产级Kafka集群的完整教程
  • 关于OceanBase与CDH适配的经验分享
  • 【北京迅为】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识
  • 深色系B端系统界面,在何种场景下更加适合?
  • 西门子1200:ModbusRTU-威纶通变频器
  • 量子布尔运算:AI与Python的量子世界探秘
  • 在MWC2025,读懂华为如何以行践言
  • 在Spring Boot项目中分层架构
  • 10-Agent循环分析新闻并输出总结报告
  • 《Python基础教程》第5章笔记:条件、循环及其他语句
  • AT89S51 单片机手册解读:架构、功能与应用深度剖析
  • 【GoTeams】-1:项目基础搭建
  • 【HDLbits--counter】
  • DeepSeek开源Day4:DualPipeEPLB技术详解
  • GitHub CI流水线
  • Element-ui菜单名字过长,显示省略号,鼠标悬停显示
  • 微信小程序调用阿里云的大规模模型+后端 python 实现人与人工智能进行对话
  • C++ Primer 拷贝控制和资源管理
  • 周口哪里有做网站的/windows优化大师
  • 百度怎么做网站广告/西安自动seo
  • 网站做cdn/网上商城建设
  • 建房设计图软件app/招聘seo专员
  • 做企业网站一定要企业邮箱嘛/企业培训
  • 北京食药局网站年检怎么做/网络口碑营销