Session和Cookie

本文总字数:1145,阅读预计需要:3分钟

Session和Cookie

  • Session

session是一种记录用户状态的机制,不同的是cookie保存在客户端,而session保存在服务端。客户端浏览器发起请求后,服务端会把客户端的信息以某种形式进行记录在服务器上。这就是session。session通过sessionID来识别用户的唯一性,通过cookie将sessionID带到服务器上进行校验。

  • Session创建过程

当程序需要为某个客户端的请求创建sessionID时,服务器首先检查这个客户端的请求中是否含有sessionID,如果已经包含则说明此客户端之前创建过session,服务器就按照sessionID把这个session检索出来使用(检索不到会重新创建),如果客户单请求不包含sessionID,则服务器就会为客户端重新创建一个与此次session(会话)相关联的sessionID,然后在本次响应中返回给客户端保存。(sessionID的值是一个既不会重复,又不容易找到规律模仿仿造的字符串。)

  • Cookie

cookie由于http是一种无状态协议,服务器从网络连接上无法知道用户身份,当在页面进行一系列的操作后,服务器无法判断是用户A还是用户B的操作,所以这时就引入了cookie作为类似一个“通行证”的东西,来识别是用户A的操作还是用户B的操作,这就是cookie的工作原理。

  • Cookie创建过程

当客户端请求服务器,如果服务器需要记录该用户的状态,就使用response向客户端浏览器颁发一个cookie。客户端会将cookie保存起来,当浏览器再次请求该网站时,浏览器把请求的网址以及cookie一起交给服务器,服务器核查cookie,以此来辨别用户的状态。服务器还可以根据需求对cookie进行修改。cookie实际上是一小段文本信息,主要内容包括名字,值,过期时间,路径,域。

  • 个人总结

    我个人认为,可以说cookie是客户端用户的身份验证的身份证,而sessionID则是标识用户的唯一性的身份证号,而session则是服务端用来验证用户sessionID(身份证号码)的验证器。

    • 区别
      • cookie的数据保存在客户端的浏览器上
      • session的数据保存在服务器上
      • cookie不是很安全,其他人可进行分析仿造本地的cookie进行cookie欺骗
      • session会在一定时间内保存在服务器上,当访问增多,会增加服务器的压力。
      • 单个cookie中保存的数据不能超过4k,很多浏览器都限制一个站点最多保留20个cookie
      • 出于安全考虑,可以将登陆信息等重要信息保存在session中,其他信息需要保留可以存在到cookie中。
posted @   亮剑-胜哥  阅读(72)  评论(0)    收藏  举报
编辑推荐:
· 解锁.NET 9性能优化黑科技:从内存管理到Web性能的最全指南
· 通过一个DEMO理解MCP(模型上下文协议)的生命周期
· MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
阅读排行:
· 解锁.NET 9性能优化黑科技:从内存管理到Web性能的最全指南
· .net clr 8年才修复的BUG,你让我损失太多了
· .NET周刊【3月第5期 2025-03-30】
· 一个神奇的JS代码,让浏览器在新的空白标签页运行我们 HTML 代码(createObjectURL
· 即时通信SSE和WebSocket对比

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示