一、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的一些知识点总结的更多相关文章

  1. js的cookie操作及知识点详解

    <html> <head> <script type="text/javascript"> function getCookie(c_name) ...

  2. 关于Cookie的相关知识点以及使用方法

    首先介绍cookie的一些方法 response.addCookie(Cookie cookie)是将一个cookie对象传入客户端. Cookie cookie=new Cookie(String ...

  3. 第三方cookie与搜索引擎+网站广告原理

    cookie 摘自 : http://www.williamlong.info/archives/3125.html 关于cookie的安全知识 :http://shaoshuai.me/tech/2 ...

  4. cookie 详解 与 封装 实用的cookie

    在WEB前端开发中,cookie是必不可少的,网上也有很多开源的库可以使用,不过我还是想自己总结一下,做个笔记并封装一个实用的库.(1)什么是cookie? 从web 角度 cookie是用于存储信息 ...

  5. 安全测试之session,cookie

    session session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息.•但程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这 ...

  6. Cookie学习笔记二:Cookie实例

    今天说说刚刚学到的两个Cookie的最经典应用:自己主动登录和购物车设置 一:自己主动登录 须要两个页面:login.jsp与index.jsp,login.jsp用来输出登录信息,index.jsp ...

  7. Java服务端对Cookie的简单操作

    Java服务端对Cookie的简单操作 时间 2016-04-07 10:39:44 极客头条 原文  http://www.cuiyongzhi.com/index.php/post/15.html ...

  8. 巧用UserAgent来解决浏览器的各种问题

    以前对UserAgent了解不是很透彻,今天发现UserAgent用处多多.比如我之前一直很喜欢用火狐浏览器,不过用了那么久发现火狐浏览器问题多多,比如有的论坛上传附件或者上传图片等按钮没有作用,并且 ...

  9. 浏览器 User-Agent 大全

    一.基础知识 Http Header之User-Agent User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA.它是一个特殊字符串头,是 ...

  10. jsp内置对象之response、out、config、exception、pageContext。

    本文是对Jsp内置对象的response.out.config.exception.pageContext知识点的详细总结. response对象 Response内置对象和request内置对象是相 ...

随机推荐

  1. fatal: 无法访问 'https://github.com/nmww/lingyun.git/':Failed to connect to github.com port 443 after 13 ms: Connection refused

    fatal: 无法访问 'https://github.com/nmww/lingyun.git/':Failed to connect to github.com port 443 after 13 ...

  2. 【翻译】listener.ora

    今天仔细过一遍oracle的监听配置文件描述. cat $ORACLE_HOME/network/admin/samples/listener.ora # copyright (c) 1997 by ...

  3. Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_食品的实体类、工具类与实现类

    Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_食品的实体类.工具类与实现类 ELM_V1_食品的实体类 package elm_V1; /** * [食品实体类] * * @a ...

  4. GitHub 术语解释

    为了大家进一步了解和使用 GitHub,在本文中,我们一起来看看 GitHub 的常用术语,也可以说是基本概念: Repository:简称Repo,可以理解为"仓库",我们的项目 ...

  5. Java表达式引擎选型调研分析

    1 简介 我们项目组主要负责面向企业客户的业务系统,企业的需求往往是多样化且复杂的,对接不同企业时会有不同的定制化的业务模型和流程.我们在业务系统中使用表达式引擎,集中配置管理业务规则,并实现实时决策 ...

  6. Django笔记四十一之Django中使用es

    本文首发于公众号:Hunter后端 原文链接:Django笔记四十一之Django中使用es 前面在 Python 连接 es 的操作中,有过介绍如何使用 Python 代码连接 es 以及对 es ...

  7. React 应用构建(环境)

    可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么? 一. 环境搭建 工作编辑器:Visual Studio Code. Javascript 解析 ...

  8. 【Javaweb】做一个房产信息管理系统一

    2019级<JAVA语言程序设计>     上机考试试题                                  2020.12.20     考试要求   一.本试卷为2019 ...

  9. 关于Maven执行mvn help:system命令报错

    报错: [ERROR] Error executing Maven.[ERROR] 2 problems were encountered while building the effective s ...

  10. JavaWeb开发-CSS基础

    2.CSS层叠样式表基本语法 层叠样式表,用来控制页面的样式 (1)CSS的三种引入方式 内部样式表:适合学习使用,将CSS代码写在style标签里面,style标签嵌套在title里 外部样式表:开 ...