cookie的一些知识点总结
一、cookie的种类
- sessionID
这个ID是会话性的,只要关闭了当前浏览器,这个ID会消失,需要调用getSessoin重新获取一个新的session - 会话性cookie
这个cookie也是会话性的 - 即使性cookie
这个cookie只要离开的该请求或者是页面,就会消失 - 持久性cookie
这个cookie只要时间没有过期,就会存储在客户端,不会过期
二、getSession()原理
req.getSession()在会对请求来的cookie中的sessionID和服务器中的相关map进行查找,如果集合中没有该sessionID。
那么服务器会自动创建一个新的session和对应的ID并放到响应的cookie中。然后客户端接收到这个cookie后会保存到客户端中。
然后下一次请求再次带上这个cookie发送到servlet中。
req.getSession().getAttribute()这个获取属性和值也是在服务器的相关map集合查找
三、一个有趣的实验
因为sessionID在每一个不同类型的浏览器是不同的。在每一次会话是也是不同的.
当我在Chrome一次会话中登录了,比如8E77DD7F827749A52C92FF45D38C9DC6这个sessoinID在服务器被标记为已经登录
然后我复制该sessionID的值再去到Edge浏览器该网址的sessionID中,发现列表页面也能访问。我再尝试用chrome关闭
之前的会话,再次打开新的会话,也是和Edge浏览器的操作一样,列表页面也能访问。说明sessionID和对应的属性和值存储
在服务器的某个map集合当中。而且默认一个sessionID在servlet容器没有关闭的时候时间为30min。
但是只要关闭了servlet容器,那么所有的sessionID和对应的属性和值都会删除掉!
四、cookie和session的区别:
cookie里面其实也有会话级cookie属性,跟sessionID都是保存在客户端,一旦关闭了本次会话,浏览器并不能
再次找到这个属性。而session是保存在服务端,所以只要服务端没有关闭,那么有对应sessionID,还是能找到该sessionID
以前保存的内容。
cookie里面有即使性cookie属性,目前不知道业务场景
cookie里面还有持久性属性,持久性保存在客户端的内存中,关闭会话和servlet服务器也不会消失,唯一条件是超过时间
会自动消失,这个用来保存token非常好用。
五、扩展
session虽然说不能通过servlet实现服务端持久化,但是能通过tomcat持久化。不过和cookie的客户端持久化来讲,从性能、
速度以及对应的投资,cookie是一个很好的解决方案。
比如:
servlet session持久化
cookie的一些知识点总结的更多相关文章
- js的cookie操作及知识点详解
<html> <head> <script type="text/javascript"> function getCookie(c_name) ...
- 关于Cookie的相关知识点以及使用方法
首先介绍cookie的一些方法 response.addCookie(Cookie cookie)是将一个cookie对象传入客户端. Cookie cookie=new Cookie(String ...
- 第三方cookie与搜索引擎+网站广告原理
cookie 摘自 : http://www.williamlong.info/archives/3125.html 关于cookie的安全知识 :http://shaoshuai.me/tech/2 ...
- cookie 详解 与 封装 实用的cookie
在WEB前端开发中,cookie是必不可少的,网上也有很多开源的库可以使用,不过我还是想自己总结一下,做个笔记并封装一个实用的库.(1)什么是cookie? 从web 角度 cookie是用于存储信息 ...
- 安全测试之session,cookie
session session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息.•但程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这 ...
- Cookie学习笔记二:Cookie实例
今天说说刚刚学到的两个Cookie的最经典应用:自己主动登录和购物车设置 一:自己主动登录 须要两个页面:login.jsp与index.jsp,login.jsp用来输出登录信息,index.jsp ...
- Java服务端对Cookie的简单操作
Java服务端对Cookie的简单操作 时间 2016-04-07 10:39:44 极客头条 原文 http://www.cuiyongzhi.com/index.php/post/15.html ...
- 巧用UserAgent来解决浏览器的各种问题
以前对UserAgent了解不是很透彻,今天发现UserAgent用处多多.比如我之前一直很喜欢用火狐浏览器,不过用了那么久发现火狐浏览器问题多多,比如有的论坛上传附件或者上传图片等按钮没有作用,并且 ...
- 浏览器 User-Agent 大全
一.基础知识 Http Header之User-Agent User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA.它是一个特殊字符串头,是 ...
- jsp内置对象之response、out、config、exception、pageContext。
本文是对Jsp内置对象的response.out.config.exception.pageContext知识点的详细总结. response对象 Response内置对象和request内置对象是相 ...
随机推荐
- Android Orm框架(GreenDao)
Android Orm框架(GreenDao) 分类: android2014-04-10 14:29 723人阅读 评论(0) 收藏 举报 GreenDao与Ormlite对比 Ormlite:简单 ...
- 如何基于three.js(webgl)引擎架构,研发一套通过配置就能自动生成的3D机房系统
序: 这几年观察下来,大部分做物联网三维可视化解决方案的企业或个人, 基本都绕不开3D机房.包括前面也讲过这样的案例<使用webgl(three.js)创建自动化抽象化3D机房,3D机房模块详细 ...
- 一步步带你剖析Java中的Reader类
本文分享自华为云社区<深入理解Java中的Reader类:一步步剖析>,作者:bug菌. 前言 在Java开发过程中,我们经常需要读取文件中的数据,而数据的读取需要一个合适的类进行处理.J ...
- 逻辑漏洞挖掘之CSRF漏洞原理分析及实战演练
一.前言 2月份的1.2亿条用户地址信息泄露再次给各大公司敲响了警钟,数据安全的重要性愈加凸显,这也更加坚定了我们推行安全测试常态化的决心.随着测试组安全测试常态化的推进,有更多的同事对逻辑漏洞产生了 ...
- 交互式数据分析和python笔记
1.安装conda 类似npm的n https://www.jianshu.com/p/544a4c8a8186 # 安装python 以及依赖 conda create -n joy python= ...
- 数组操作 filter和find
现在有个需求: 后端给一个list过来,1-4,有就显示,没有前面四个card就空着,从第五个开始,有数据就循环出来,区别他们的kind字段. 这里想了很久怎么写,最后决定,洗数据. 就是从给给的数据 ...
- Java比赛常用API总结
1.栈和队列 1.1 栈的常用方法 //1.栈顶插入元素 push(element) //2.返回栈顶元素并弹出栈顶元素 pop() //3.返回栈顶元素但不弹出 peek() //4.清空栈 cle ...
- Gmail如何开启SMTP/POP
1. 登录Gmail账号,右上角点击设置图标 -> 查看所有设置,如图 2. 点击"转发和POP/IMAP",如图 3. 开启IMAP和POP,选择"对所有邮件启用 ...
- Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入
从表格中选择数据 要从MySQL中的表格中选择数据,请使用"SELECT"语句: 示例选择"customers"表格中的所有记录,并显示结果: import m ...
- 不懂乐理,也能扒谱,基于openvpi将mp3转换为midi乐谱(Python3.10)
所谓"扒谱"是指通过听歌或观看演奏视频等方式,逐步分析和还原音乐作品的曲谱或乐谱的过程.它是音乐学习和演奏的一种常见方法,通常由音乐爱好者.乐手或学生使用. 在扒谱的过程中,人们会 ...