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内置对象是相 ...
随机推荐
- 前端三件套系例之CSS——响应式布局
文章目录 1.什么是响应式设计 1-1 定义 1-2 响应式设计的优势 2.屏幕的相关概念 3.viewport 视口 3-1 什么是viewport 3-2 设置viewport 4.媒体查询 @m ...
- 成本阶问题:财务模块axcr004合计金额检核表第18行合计金额与明细差异过大问题处理?
财务模块axcr004合计金额检核表第18行合计金额与明细差异过大问题处理? 可能原因:生产开立工单时元件未建在生产料件BOM明细中,导致成本阶没有算到,需要手动更改成本阶. 公式: 处理办法:修改成 ...
- linux常用命令(七)
用于系统内信息交流的相关命令 echo mesg wall write echo:在显示器上显示文字 命令语法:echo[选项] [字符串] 选项 选项含义 -n 表示输出文字后不换行 例子:将文本& ...
- 几个易错的python小知识点
大家好,我是暴走の海鸽~ 本期整理了几个基础python防坑小常识,希望对大家有所帮助. 1. type == object? 执行以下代码的结果是什么: >>> isinstanc ...
- 【matplotlib 实战】--堆叠柱状图
堆叠柱状图,是一种用来分解整体.比较各部分的图.与柱状图类似,堆叠柱状图常被用于比较不同类别的数值.而且,它的每一类数值内部,又被划分为多个子类别,这些子类别一般用不同的颜色来指代. 柱状图帮助我们观 ...
- Markdown 包含其他文件静态渲染工具
1. 前言 在 GitHub 上写文档,很多时候要插入 uml,像 mermaid 这种可以直接在 GitHub/GitLab 中渲染的一般直接写个 code block 进去,但是这样造成一个问题就 ...
- 【Postman】以命令行形式执行Postman脚本(使用newman)
以命令行形式执行Postman脚本(使用Newman) 目录 以命令行形式执行Postman脚本(使用Newman) 一.背景 二.Newman的安装 1.Node.js 2.Newman 三.脚本准 ...
- Vue之class的用法
Vue中class的使用总结如下: 使用形式v-bind:class 简写:class 1.在数组中使用一个class <!DOCTYPE html> <html lang=&qu ...
- LINUX基础知识和命令 二
LINUX alias (别名) 自定义命令=原始命令 原始命令中有特殊符@#%()请打上 引号,单双无所谓 例:vim /etc/sysconfig/network-scripts/ifcfg-en ...
- Windows没有足够信息,不能验证该证书",是因为该证书的颁发者
Windows没有足够信息,不能验证该证书",无法验证该证书的颁发者 解决方案之一: 1.win+R:打开运行 2.输入 gpedit.msc,确定,打开组策略 3.选择:计算机配置---管 ...