session与cookie之间的关系
一、客户端与服务端请求响应的关系
USER(客户端) 请求 tomcat(服务器), 属于HTTP请求。http请求是无状态的,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;所以当用户从客户端请求一次登录后,登录成功,再次进行请求时,因为tomcat不能识别这两次会话都是来自同一个浏览器,即服务端不知道客户端的历史请求记录;就会再次弹出登录对话框。
为了解决客户端与服务端会话同步问题。这便引出了下面几个概念:cookie、session。
于是,我们便把服务器中产生的会话sessionID存储到客户端浏览器cookie中去。在客户端存在周期为浏览器关闭时,消失。这样便解决了客户端请求服务端会话不同步问题。
二、cookie是什么
一个HTTP cookie的(网络Cookie,浏览器cookie)是一小片数据的一个服务器发送到用户的网络浏览器。浏览器可以存储它并将其与下一个请求一起发送回同一服务器。通常,它用于判断两个请求是否来自同一个浏览器 - 例如,保持用户登录。它记住无状态 HTTP协议的有状态信息。
三、session是什么
客户端请求服务端,服务端(Tomcat)会为这次请求开辟一块内存空间,这个对象便是Session对象, 存储结构为ConcurrentHashMap。
session的目的:弥补HTTP无状态特性,服务器可以利用session存储客户端在同一个会话期间的一些操作记录。
四、HTTP是无状态的
在同一连接上连续执行的两个请求之间没有链接。对于试图与某些页面连贯地相互作用的用户而言,这立即存在问题,例如,使用电子商务购物篮。但是,虽然HTTP本身的核心是无状态,但HTTP cookie允许使用有状态会话。使用标头可扩展性,HTTP Cookie被添加到工作流中,允许在每个HTTP请求上创建会话以共享相同的上下文或相同的状态。
五、session的实现机制
1、服务器如何判断客户端发送过来的请求属于同一个会话?
用session id区分;session id 相同即认为是同一个会话;
1
在tomcat中session id中用JSESSIONID来表示;
2、服务器、客户端如何获取sessionID?SessionID在期间是如何传输的?
服务器第一次接收到请求时,开辟了一块Session空间(创建了Session对象),同时生成一个Session id,并通过响应头的Set-Cookie:“JSESSIONID=XXXXXXX”命令,向客户端发送要求设置cookie的响应; 客户端收到响应后,在本机客户端设置了一个JSESSIONID=XXXXXXX的cookie信息,该cookie的过期时间为浏览器会话结束;
接下来客户端每次向同一个网站发送请求时,请求头都会带上该cookie信息(包含Session id); 然后,服务器通过读取请求头中的Cookie信息,获取名称为JSESSIONID的值,得到此次请求的Session id;
注意:服务器只会在客户端第一次请求响应的时候,在响应头上添加Set-Cookie:“JSESSIONID=XXXXXXX”信息,接下来在同一个会话的第二第三次响应头里,是不会添加Set- Cookie:“JSESSIONID=XXXXXXX”信息的; 而客户端是会在每次请求头的cookie中带上JSESSIONID信息;
本文链接:https://blog.csdn.net/qq_28296925/article/details/80921585
转载于:https://www.cnblogs.com/joyco773/p/11581500.html
session与cookie之间的关系相关推荐
- cookie、session与token之间的关系
cookie.session与token之间的关系 token 令牌,是用户身份的验证方式. 最简单的token组成:uid(用户唯一的身份标识).time(当前时间的时间戳).sign(签名). 对 ...
- session,sessionid,cookie之间的关系解析
session,sessionid,cookie之间的关系解析 文章目录 session,sessionid,cookie之间的关系解析 1.简介 2.session和cookie定义,创建,周期和联 ...
- qq空间登陆 cookie_看完这篇 Session、Cookie、Token,和面试官扯皮就没问题了||CSDN博文精选...
作者:程序员cxuan Cookie 和 Session HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录:Session 和 ...
- php session和cookie区别,php中session和cookie的区别是什么?
一.Session (1)Session的由来以及介绍 Session:在计算机中,尤其是在网络应用中,称为"会话控制",生存时间为用户在浏览某个网站时,从进入网站到关闭这个网站所 ...
- 浅谈Session与Cookie的关系
阅读目录 一.概念理解: 首先cookie是服务端识别客户的唯一标识的依据,客户在访问网站时候,服务端为了记住这个客户,会在服务端按照它的规则制作一个cookie数据,会将这个cookie数据保留在服 ...
- 白话 Session 与 Cookie:从经营杂货店开始
在Web开发里面有一个历久不衰的议题,那就是Session与Cookie的区别.从我刚开始学程序时这一题就常出现在面试考题里,一直到现在都还是能看见这个问题. 这个问题重要吗? 我觉得满重要的.因为S ...
- 深入理解 Session 与 Cookie
Session 与 Cookie 不管是对 Java Web 的初学者还是熟练使用者来说都是一个令人头疼的问题.在初入职场时恐怕很多程序员在面试的时候都被问到过这个问题.其实这个问题回答起来既简单又复 ...
- Session,Cookie,jsessionid,Url重写
在一些投票之类的场合,我们往往因为公平的原则要求每人只能投一票,在一些WEB开发中也有类似的情况,这时候我们通常会使用COOKIE来实现,例如如下的代码: < % cookie[]cookies ...
- PHP会话管理——Session和Cookie
会话管理包括:Session和Cookie,主要功能都是把客户端和服务器关联起来,用于管理和查看用户在网站中的状态. 背景 Web应用程序是使用HTTP协议传输数据的.HTTP协议是无状态的协议.一旦 ...
- session和cookie的区别和联系
1.Session和Cookie的区别 对象 信息量大小 保存时间 应用范围 保存位置 Session 小量,简单的数据 用户活动时间+一段延迟时间(一般为20分钟) 单个用户 服务器端 Cookie ...
最新文章
- 从单体到混乱的微服务,阿里云托管式服务网格是如何诞生的?
- HDU1520 Anniversary party 树形动态规划
- Spark MLlib学习笔记之二——Spark Mllib矩阵向量
- 80后阿里P10,“关老板”如何带着MaxCompute一路升级?
- 沃尔沃主动召回40万台车,只因一个罕见的问题
- throw和throws有什么区别
- 第三届长安杯检材一复盘
- wpsmac历史版本_wps mac版|wps for mac官方下载免费完整版-太平洋下载中心
- iMindMap手绘思维导图软件免费版
- IC设计中的glitch free时钟切换
- 群晖安装Calibre(含格式转换豆瓣元数据推送kindle)221211
- 乐学python视频资源_铁乐学python_day04-作业
- Uni-App 简单引导页示例
- 5“机”时代,如何掘金新价值和新机遇?
- flutter源码下载(最新)
- stm32cube,hal库来实现PS2手柄数据发送
- (完整项目源码)GPS定位源码整套管理系统,轨迹播放,车辆管理,电子围栏,报警记录,数据库/人员定位/宠物定位/物流跟踪/资产定位
- CSR8670 /CSR8675 升级文件DFU制作
- 基于ABC人工蜂群优化算法的最优解搜索算法matlab仿真
- 依云工资查询系统升级方法
热门文章
- SystemExit: 2
- python-os库函数一些用法记录
- html辅助方法实现原理,前端每日实战:苦练 CSS 基本功——图解辅助线的原理和画法...
- js基础知识汇总10
- 对于机器学习而言如何翻越测试集
- Python爬取豆瓣网中即将上映的电影数据清单
- sklearn实践之——计算回归模型的四大评价指标(explained_variance_score、mean_absolute_error、mean_squared_error、r2_score)
- c++ 多线程_python要点-多线程
- 软件学报 流程 期刊投稿记录 状态变更 时间
- IPFS python api 示例