[06] Session实现机制以及和Cookie的区别
1、为什么有Session和Cookie
2、Session们谁是谁的谁(实现机制)
- 当容器创建一个新的HttpSession对象后,会生成一个随机数,称之为会话ID,并将ID值封装成一个名为JSESSIONID的Cookie,返回给客户端;
- 之后的请求,在调用request.getSession方法获得会话对象时,容器会先从request中获取JSESSIONID的值,根据值查找到对应的会话对象,返回使用;
- 如果没有获得JSESSIONID值,则容器认为当前请求没有相关联的会话对象,会重复第一步进行生成。
- 去餐馆点了牛排,得到号码牌(JSESSIONID)
- 你走开了几步之后,服务员就忘了你是谁
- 你如果想取你的牛排,你就需要这个号码牌去找服务员领
- 服务员能根据号码牌确认你是顾客,你点过餐,把你对应的牛排拿给你

3、Cookie被阻止的处理
- 先判断当前的Web组件是否启用Session,如果没有启用Session,直接返回参数url
- 如果启用Session,再判断客户端浏览器是否支持Cookie
- 如果支持Cookie,直接返回参数url
- 如果不支持Cookie,就在参数url中加入JSESSIONID信息,然后返回修改后的url
<a href = <%=response.encodeURL("admin/doServlet")%> >URL重写访问</a>
<a href = <%=response.encodeURL("admin/doServlet")%> >URL重写访问</a>

4、Cookie和Session的区别
- 都是保存用户信息,不同在于Session存储在服务器端,Cookie是存储在客户端
- Session中可以保存任意对象,Cookie只能保存字符串
- Session随会话结束而关闭,Cookie可以长期保存在客户端硬盘上,也可以临时保存在浏览器内存中
- Session用来保存重要信息,Cookie用来保存不重要的用户信息
[06] Session实现机制以及和Cookie的区别的更多相关文章
- session生命周期,与cookie的区别
sessinon在用户访问第一次访问服务器时创建. Session什么时候失效? 1. 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效.Tomcat中Sessio ...
- Session认证机制与JWT认证机制
一.什么是身份认证? 身份认证(Authentication)又称"身份验证"."鉴权",是指通过一定的手段,完成对用户身份的确认.日常生活中的身份认证随处可见 ...
- [转载]Cookie/Session的机制与安全
Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道.本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题. 因 ...
- Cookie/Session的机制与安全
转载自:https://harttle.land/2015/08/10/cookie-session.html Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以 ...
- COOKIE和session的机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- Cookie/Session的机制
Cookie的机制 Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能. Cookie的Domain和Path属性标识 ...
- php中session实现机制
一.默认机制,用磁盘文件来实现PHP会话.php.ini配置:session.save_handler = files 1.session_start() A. session_start()是ses ...
- session跟cookie的区别
这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...
- session和cookie的区别
cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 同时我们也看到,由于才服务器 ...
随机推荐
- JSP 页面传值方法总结(转)
原文地址:http://www.cnblogs.com/java-class/p/6358964.html 阅读目录 1. URL 链接后追加参数 2. Form 3. 设置 Cookie 4. 设置 ...
- SUID SGID
SUID 1.只作用在可执行二进制文件上,普通用户需要对该文件有x权限, 2.在执行该文件时,用户身份切换为文件owner: 3.执行完毕,切换回普通用户. 一.查找具有SUID权限的系统文件(-40 ...
- install redis
1.Office Download redis.tar.gz from website --- redis.io 2.uncompact file $ tar zxvf redis-3.2.9.ta ...
- 第一天的Python之路 笔记
打了***号的都是老师要求明天早上默写的 编程语言的作用(程序员使用的编程语言达到命令电脑工作的目的)及与操作系统和硬件的关系(编程 语言用来开发软件,软件基于操作系统之上,操作系统又基于硬件之上 ...
- 给MySQL_5.7 配置环境变量
给MySQL_5.7 配置环境变量... 1.右键我的电脑--选择属性 2.选择高级系统设置 3.根据MySQL的安装路径.来配置MYSQL_HOME环境变量 找到MySQL5.7的安装根目录 4 ...
- Web初学-入门和tomcat介绍记录
一.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页面) ...
- Django编写RESTful API(六):ViewSets和Routers
欢迎访问我的个人网站:www.comingnext.cn 前言 在本系列的文章中,我在第一篇和第二篇文章中写的编写Django视图时,使用的都是基于函数的方法,并且每个视图函数之前都会加一个djang ...
- 求链表内环的入口节点-Java
步骤: 1.设置快慢两个指针,slow和fast,每次slow走一步slow.next,而fast走两步fast.next.next. 2.如果链表有环肯定可以在环内的一个节点相遇. 3.此时,slo ...
- jenkins到底如何拉取代码 如何部署的
tips:jenkins通过配置,将之前编译.打包.上传.部署到Tomcat中的过程交由jenkins,jenkins通过指定的代码地址url,将代码拉取到其jenkins的安装位置,进行编译.打包和 ...
- photoshop软件应用手记
------------------------常用图片格式------------------------ 位图和矢量图 位图也叫点阵图,是由一个个的方形的像素点排列在一起拼接而成的,位图在放大时, ...