为什么不同用户登录同一个页面,看到的是不同数据

news/2024/5/18 12:40:38 标签: session, cookie

大家都知道,比如我们登录一个OA网站,看到的数据和同事的是有不同的,简单一想,是因为我们的登录账户不同,但是技术上是怎么实现的呢?
尤其是login后,我们访问的都是同一个URL,为什么页面上展示的数据会不同呢?

技术初探

最近小编亲自编写了一个web应用,终于略懂一二,和大家分享。

  1. 后台会根据请求所关联的用户去过滤数据
    用户在浏览器中输入URL,后台根据URL匹配处理他的视图,返回属于该用户的数据。
    为什么在浏览器中输入URL,后台程序能知道这次请求所关联的用户是谁?请看下一节,技术细探
    在这里插入图片描述

技术细探(Cookie/Session机制详解)

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

详情推荐大家阅读:https://www.cnblogs.com/zhouhbing/p/4204132.html

这边提炼几个关键点:

  • HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。
  • 目前Cookie已经成为标准,所有的主流浏览器都支持Cookie。
  • Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交(浏览器每次请求服务器都会携带Cookie)给服务器。服务器检查该Cookie,以此来辨认用户状态。
  • 查看某个网站颁发的Cookie很简单。在浏览器地址栏输入javascript:alert (document. cookie),大家可以在百度网页中尝试
  • Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。
  • Session对象是在客户端第一次请求服务器的时候创建的。
  • 虽然Session保存在服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持。这是因为Session需要使用Cookie作为识别标志。HTTP协议是无状态的,Session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为JSESSIONID的Cookie,它的值为该Session的id(也就是HttpSession.getId()的返回值)。Session依据该Cookie来识别是否为同一用户。
  • 绝大多数的手机浏览器都不支持Cookie。Java Web提供了另一种解决方案:URL地址重写。
  • URL地址重写是对客户端不支持Cookie的解决方案。URL地址重写的原理是将该用户Session的id信息重写到URL地址中。服务器能够解析重写后的URL获取Session的id。这样即使客户端不支持Cookie,也可以使用Session来记录用户状态。HttpServletResponse类提供了encodeURL(Stringurl)实现URL地址重写

http://www.niftyadmin.cn/n/1580923.html

相关文章

如何快速学习一门新技能:看牛人3类书

小编最近因工作需要,想进一步提升PPT制作的能力,将这个思考的“如何快速学习一门新技能”的过程整理如下。 该方法也适用于大家希望提升理财能力、演讲能力等需求。 建议找到3类书: 1、该技能领域内最厉害的书 2、该技能领域内花三周左右能…

面试方法-麦可利兰的能力素质模型

文章目录一、模型介绍张一鸣:我遇到的优秀年轻人的5个特质五项素质:华为人才基因的真正密码归纳一下特质二、模型应用一、模型介绍 麦可利兰把能力素质划分为五个层次: 1、知识(Knowledge) 2、技能(Skill&…

XP中CPU占用率过高的解决办法

安装windows XP的计算机收到445端口上的连接请求时,windows XP会分配内存并少量地调配CPU资源来为这些连接提供服务.当连接请求负荷过重时,就可能会造成CPU占用率过高,导致系统性能急剧下降,甚至会进入假死状态。 问题…

HDF库的调试过程

经过几天的不断尝试,终于将HDF库调试成功了,其间收获颇丰,切身感受学习开源GIS对于提高自己的二次开发能力的重要作用,因为一个开源GIS软件涉及到很多东西! 现将编译的步骤记录下来,以待将来查看&#xff0…

Excel批量处理利器:openpyxl处理Excel

openpyxl官方文档:https://openpyxl.readthedocs.io/en/stable/ 为什么是openpyxl? 主要是该库具备打开文件直接修改的功能,更加方便。 另外该库一直在更新维护,可以预见,该库的功能也更加可靠。 基础知识 该类已…

用STAR法则准确表达自我贡献(用于面试问答、绩效填写等)

STAR法则,即为Situation Target Action Result的缩写,具体含义是: Situation: 事情是在什么情况下发生Target: 你是如何明确你的目标的Action: 针对这样的情况分析,你采用了什么行动方式Result: 结果怎样,在这样的情况下你学习到…

初窥WF 4.0 beta1

微软终于发布了Visual Studio 2010 beta1,而在这个版本中,WF也终于以崭新的面貌出现,并且让我们大吃一惊。 和Visual Studio 2008一样,Visual Studio 2010在新建项目时也可以指定目标.NET Framework版本,并且可用的项目…

使用python对接海康威视的ISC(iSecureCenter)平台

使用python如何对接ISC平台,获取视频、门禁、停车场等业务数据? 步骤如下: 1、登录海康的开放平台网站:open.hikvision.com,查看对接指南 2、正式开始编码 python导入jar包依赖库,需要导入ISC平台的安全…