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内置对象是相 ...
随机推荐
- Python面向对象——Mixin机制、重载、多态与鸭子类型、绑定与非绑定方法、Python常见的内置函数
文章目录 内容回顾 Mixin机制 1.什么是Mixin 2.Mixin来源 3.定义及优点 4.在python中的应用 5.在Django项目中的应用 重载(在子类派生的新方法中如何重用父类的功能) ...
- WebKit Insie: Active 样式表
WebKit Inside: CSS 样式表的匹配时机介绍了当 HTML 页面有不同 CSS 样式表引入时,CSS 样式表开始匹配的时机.后续文章继续介绍 CSS 样式表的匹配过程,但是在匹配之前,首 ...
- Android历史版本
目录 [隐藏] 1 测试版 2 版本列表 2.1 Android 1.0 2.2 Android 1.1 2.3 Android 1.5 Cupcake 2.4 Android 1.6 Donut ...
- [ABC276Ex] Construct a Matrix
没有题解,所以来写一篇. Description 构造一个 \(N\times N\) 的矩阵 \(A\),其中 \(A_{i,j}\in {0,1,2}\),要求同时满足 \(Q\) 条限制. 每条 ...
- 模拟退火算法(SA)
求某个目标函数的最值 爬山法 首先我们通过爬山法来引出模拟退火算法 我们先看一个例子:求函数的最值 我们用爬山法解决这个问题的步骤 1.在解空间中随机生成一个初始解(图中小黄点就是我们生成的初始解) ...
- k8s-1.23.6 安装部署文档(超详细)
一.文档简介 作者:lanjiaxuan 邮箱:lanheader@163.com 博客地址:https://www.cnblogs.com/lanheader/ 更新时间:2022-09-09 二. ...
- 不同角度理解线程的状态(操作系统 & Java API)
3.12 五种状态 ( 操作系统 层面) 这是从 操作系统 层面来描述的 [初始状态]仅是在语言层面创建了线程对象,还未与操作系统线程关联 [可运行状态](就绪状态)指该线程已经被创建(与操作系统线程 ...
- 我整理了一份Flink流计算入门教程清单(转)
好久不见! 作为技术出身的我,不太会写软文广告,今天就直接来个硬广.之前与人民邮电出版社合作的<Flink原理与实践>经过一年多时间的打磨和润色,这两天终于与大家见面了,恳请各位朋友多多支 ...
- RTMP协议学习——从握手到播放
从客户端发起播放请求,到rtrmp视频流开始播放,大致经过了握手->建立连接->创建流->播放这几步比较重要的步骤.下面我将结合wireshark的抓包,对其中的每个流程进行分析和学 ...
- 升级到 Pulsar3.0 后深入了解 JWT 鉴权
背景 最近在测试将 Pulsar 2.11.2 升级到 3.0.1的过程中碰到一个鉴权问题,正好借着这个问题充分了解下 Pulsar 的鉴权机制是如何运转的. Pulsar 支持 Namespace/ ...