Cookie 和 Session 归纳

2023-11-03

首先介绍下基本概念:
cookie是服务器通知客户端让其保存健值对的一种形式,客户端有了cookie之后,每次请求就会发送给服务器,每个cookie最大是4kb
**

服务器创建cookie

**

1Cookie cookie = new Cookie("","");		创建一个cookie
2response.addCookie(cookie);				通知客户端保存这个cookie
之后就会在响应头中添加cookie信息: Set-Cookie 
当浏览器收到了响应之后,就会去检查 如果没有同名的cookie 就直接创建 如果有同名的就直接覆盖

**

服务器获取cookie

**

在客户端请求服务器的时候 请求头里头会有Cookie  所以可以用:
request.getCookies();来获取全部的请求头

**

cookie的生存时间

**
首先介绍下基本概念:
cookie是服务器通知客户端让其保存健值对的一种形式,客户端有了cookie之后,每次请求就会发送给服务器,每个cookie最大是4kb
**

服务器创建cookie

**

1Cookie cookie = new Cookie("","");		创建一个cookie
2response.addCookie(cookie);				通知客户端保存这个cookie
之后就会在响应头中添加cookie信息: Set-Cookie 
当浏览器收到了响应之后,就会去检查 如果没有同名的cookie 就直接创建 如果有同名的就直接覆盖

**

服务器获取cookie

**

在客户端请求服务器的时候 请求头里头会有Cookie  所以可以用:
request.getCookies();来获取全部的请求头

**

cookie的生存时间

**
首先介绍下基本概念:
cookie是服务器通知客户端让其保存健值对的一种形式,客户端有了cookie之后,每次请求就会发送给服务器,每个cookie最大是4kb
**

服务器创建cookie

**

1Cookie cookie = new Cookie("","");		创建一个cookie
2response.addCookie(cookie);				通知客户端保存这个cookie
之后就会在响应头中添加cookie信息: Set-Cookie 
当浏览器收到了响应之后,就会去检查 如果没有同名的cookie 就直接创建 如果有同名的就直接覆盖

**

服务器获取cookie

**

在客户端请求服务器的时候 请求头里头会有Cookie  所以可以用:
request.getCookies();来获取全部的请求头

**

cookie的生存时间

**
首先介绍下基本概念:
cookie是服务器通知客户端让其保存健值对的一种形式,客户端有了cookie之后,每次请求就会发送给服务器,每个cookie最大是4kb
**

服务器创建cookie

**

1Cookie cookie = new Cookie("","");		创建一个cookie
2response.addCookie(cookie);				通知客户端保存这个cookie
之后就会在响应头中添加cookie信息: Set-Cookie 
当浏览器收到了响应之后,就会去检查 如果没有同名的cookie 就直接创建 如果有同名的就直接覆盖

**

服务器获取cookie

**

在客户端请求服务器的时候 请求头里头会有Cookie  所以可以用:
request.getCookies();来获取全部的请求头

**

cookie的生存时间

**
首先介绍下基本概念:
cookie是服务器通知客户端让其保存健值对的一种形式,客户端有了cookie之后,每次请求就会发送给服务器,每个cookie最大是4kb
**

服务器创建cookie

**

1Cookie cookie = new Cookie("","");		创建一个cookie
2response.addCookie(cookie);				通知客户端保存这个cookie
之后就会在响应头中添加cookie信息: Set-Cookie 
当浏览器收到了响应之后,就会去检查 如果没有同名的cookie 就直接创建 如果有同名的就直接覆盖

**

服务器获取cookie

**

在客户端请求服务器的时候 请求头里头会有Cookie  所以可以用:
request.getCookies();来获取全部的请求头

**

cookie的生存时间

**
首先介绍下基本概念:
cookie是服务器通知客户端让其保存健值对的一种形式,客户端有了cookie之后,每次请求就会发送给服务器,每个cookie最大是4kb
**

服务器创建cookie

**

1Cookie cookie = new Cookie("","");		创建一个cookie
2response.addCookie(cookie);				通知客户端保存这个cookie
之后就会在响应头中添加cookie信息: Set-Cookie 
当浏览器收到了响应之后,就会去检查 如果没有同名的cookie 就直接创建 如果有同名的就直接覆盖

**

服务器获取cookie

**

在客户端请求服务器的时候 请求头里头会有Cookie  所以可以用:
request.getCookies();来获取全部的请求头

**

cookie的生存时间

**
在这里插入图片描述

1默认是负数,即浏览器关闭后就会消失  Expires/Max-Age: Session 表示一次会话
2设置为0 在浏览器收到响应后就马上删除cookie ~
3正数: 表示过了足够的秒数才会删除

**

cookie有效路径Path的设置

**

1  若 path =  /当前工程 表示:
	当我们创建一个cookie的时候 默认的path是 /当前工程,所以就会导致客户端请求该工程下的所有资源的时候 都会把这个cookie发送给服务器~  
2 若 path=/当前工程/aaa:
	表示我们请求是/当前工程/aaa/*	所有资源的时候才会发送给服务器~  这样子就可以实现过滤

**

在jsp中使用客户端发送过来的cookie

**

利用jsp的隐藏对象cookie来使用 ${cookie.}

分割~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Session是会话 保存数据在服务器端

1获取Session对象request.getSession() 第一次调用就是创建 之后调用都是获取
Session api:
		session.isNew() 判断是否是刚创建出来的
		session.getID()  获取id
		setAttribute()同一个session可以多次调用 值可以是字符串 也可以是自定义对象
		getAttribute()获取值

**

Session的存活时间

**
在这里插入图片描述

1getMaxInactiveInterval():获取session的的默认超时时间  为30分钟 在tomcat web.xml配置文件中配置

在这里插入图片描述

如果想要更改我们的超时时间 
方式一:只需要在自己工程里的web.xml中配置如上命令即可 配置后就不会受外面的默认时间影响了~
方式二:setMaxInactiveInterval():修改当前session的超时时间 以秒为单位~
			这里有个注意的点 如果我们设置了所需要的时间 在这个时间内我们重新请求后 会刷新时间重新设置为该时间 所以该时间表示的真正含义是:客户端和服务器之间两次请求的时间间隔
	方式二的优先级大于方式1

正数:存活时间
负数或者0:永不清除
想要立马清除session:session.invalidate()

**

tomcat下cookie 和 session的内部机制

**

在tomcat服务器中
1 如果一开始客户端没有名为JSESSIONID的Cookie,服务器在调用request.getSession() 之后会创建一个Cookie 名字就是JSESSIONID 值是该session的id
2服务器通过响应头把session带给客户端 客户端就创建了该cookie
3此后客户端的所有请求都会把该cookie发送给服务器 服务器在调用request.getSession()的时候会查看有没有名叫JSESSIONID的Cookie,有的话就到服务器内存中找并且返回存在的Session对象
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cookie 和 Session 归纳 的相关文章

  • SQL - != 'NULL' 的解释

    我的SSMS代码如下 Select top 50 From FilteredContact Where statuscode 1 and emailaddress1 NULL and telephone1 NULL and address1
  • 索引数量越少意味着插入、更新和删除速度更快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 postgres 和 node js 在单个语句中执行多个查询

    我需要在像这样的单个语句中执行插入和删除查询 INSERT INTO COMPANY ID NAME VALUES 1 Paul DELETE FROM COMPANY WHERE ID 12 这是我用于执行查询的 node js 代码 p
  • 如何找到多个列中的最小值

    我在我的 DB 3 col 中有一个值 我想在所有这些值中找到一个值 如下所述 表名 MyTable id col1 col2 col3 1 200 300 400 2 100 150 300 3 800 102 20 4 80 80 0
  • SQL 错误:“没有这样的表”

    我试图解决为什么我的代码为所有查询返回 null 的原因 最后发现 sql 查询什么也没有返回 我使用简约代码创建了一个新的 AIR 文档 s WindowedApplication
  • 串行类型的外键 - 确保始终手动填充

    我有两个表 国家和地区 CREATE TABLE Countries id SERIAL name VARCHAR 40 NOT NULL PRIMARY KEY id CREATE TABLE Regions id SERIAL coun
  • 需要按天分割日期时间范围

    我有一个需要根据日期时间拆分的表 输入表 ID Start End A 2019 03 04 23 18 04 2019 03 04 23 21 25 A 2019 03 04 23 45 05 2019 03 05 00 15 14 所需
  • 可以使用表通配符创建 sql 查询吗?

    这可能是一个简单的问题 但我无法在网上找到解决方案 任何帮助将不胜感激 我正在尝试在 PHP 中创建一个 SQL 查询 并希望以某种方式将通配符应用于 TABLE 过滤器 可能是这样的 select from table 但是 到目前为止我
  • 通过 osql.exe 运行脚本时出现问题

    我尝试以这种格式运行我的软件的更新脚本 osql exe i path to script U 用户 P 密码 S sqlserver 位置 d 数据库名称 n b 大多数脚本的格式相同 并且都以 GO 结尾 其中很多都运行得很好 但随机脚
  • SQL 2008全文索引填充延迟

    我的经理说 在基础表数据更改后 可能需要一段时间才能更新全文搜索索引 例如 如果我有一张桌子Products有一个柱子Description我更新了该描述 然后我可能需要一些时间才能搜索该新描述 真的吗 这需要多长时间 SQL 2008 对
  • 如何搜索例程的内容/(SP-触发函数)

    我需要在数据库内所有例程的例程主体 存储过程 函数 触发器 中搜索文本 我该怎么做 Thanks SELECT OBJECT NAME object id FROM sys sql modules WHERE definition LIKE
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 从 Getdate() 获取时间

    我想采取Getdate 结果 例如 2011 10 05 11 26 55 000 into 11 26 55 AM 我看过其他地方并发现 Select RIGHT CONVERT VARCHAR GETDATE 100 7 这给了我 11
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么

随机推荐

  • 线性表的基本操作,包括:创建、插入、删除、查找等基本操作

    标签 数据结构 线性表是数据结构中最直观 最简单的一类抽象数据类型 本次需要使用顺序表来实现线性表 并编写相应的测试程序对你所创建的顺序表及单链表进行测试 以下给出测试样例 输入数据格式 第一行只有一个整型数N 0
  • Linux详解

    一 Linux简介 Linux系统是一种自由和开放源代码的类Unix操作系统 只要遵循GNU通用公共许可证 任何人和机构都可以自由地使用Linux的所有底层源代码 也可以自由的修改和再发布 Linux这个词本身只表示Linux内核 但实际上
  • 1-Openwrt ipv6之-odhcp6c客户端

    wan口的拨号有好几种方式 SLAAC stateless DHCPv6 stateful DHCPv6 DHCPv6 PD 这些请求方式在odhcpv6里面都可以配置 1 odhcp6c客户端启动过程 开启openwrt config配置
  • java list分组成map

    文章目录 前期准备 实操 Lambda表达式方式 groupingBy分组 partitioningBy 分组 传统方式 总结 将List集合分成分组成map在工作中常常会遇到 这里我总结了两种方式 Lambda表达式方式和传统方式 前期准
  • Transformer(二)--论文理解:transformer 结构详解

    转载请注明出处 https blog csdn net nocml article details 110920221 本系列传送门 Transformer 一 论文翻译 Attention Is All You Need 中文版 Tran
  • 留言簿怎么用?

    看不到别人留言 自己也没法写留言 囧rz
  • React之antdesign官网虚拟列表(Table组件)二次封装

    1 功能介绍 建议 官网链接 建议 走一遍官网的虚拟列表 最好走通 官网虚拟列表功能都有 但是 官网虚拟列表里面跟之前表格 ant table tbody 相关的功能都无了 因为这块官网是整体替换了 ant table tbody 这一级的
  • 流形学习的解释

    作者 知乎用户 链接 https www zhihu com question 24015486 answer 194284643 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 最近发现我的这篇回答被人洗稿
  • 七天玩转Redis

    文章目录 Redis 事务 1 正常执行事务 2 取消事务执行 3 事务编译时异常 4 运行时异常 5 Redis乐观锁 Redis 事务 什么是事务 事务是一个单独的隔离操作 事务中的所有命令都会序列化 有顺序地执行 事务在执行的过程中
  • 数据结构-队列(链队列与循环队列)

    目录 队列的概念及结构 概念 结构 链队列 初始化QueueInit 销毁QueueDestroy 入队QueuePush 出队QueuePop 队头元素QueueFront 队尾元素QueueBack 队列长度QueueSize 判断是否
  • C/C++性能测试工具---Valgrind

    一 valgrind memcheck 内存错误检测器 可以检测下列与内存相关的问题 未释放内存的使用 对释放后内存的读 写 对已分配内存块尾部的读 写 内存泄露 不匹配的使用malloc new new 和 free delete del
  • Python:Using TensorFlow backend.

    声明 先说个故事吧 有一个农夫想制作一套农具 就买来一些工具 但是有了工具依然不会用 就去找别人帮忙 有一个人教给农夫一套方法 农夫高兴地就回家了 结果农夫发现 用这个人给的方法 跟自己的工具不匹配 然后就跟别人说这个人害人不浅 为什么要说
  • 医疗图像三维重建方法小结(python+VTK+ITK+Mayavi)

    医疗图像三维重建forpython 环境简介 方法 方法一 Poly3DCollection matplotlib 方法二 VTK ITK 方法三 Mayavi之contour3d 最终方法Mayavi TVTK 环境简介 语言是pytho
  • 如果让你自己设计一个分布式架构的中间件系统,该怎么做?

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 1 Master Slave架构 2 异步日志持久化机制 3 检查点机制 定时持久化全量数据 4 引入检查点节点 5 总结 思考 这篇文章 给大家来聊一个生产级
  • git cherry-pick 拣选命令——重放提交

    git cherry pick 拣选命令 重放提交 语法 描述
  • (二)基于演示介绍一些技术要点

    1 解决方案目录结构 2 各模块的依赖关系图 3 基于以上的架构的Web端访问数据库的方式 4 从实体类成员到界面控件的转换 实体类 gt 数据表 根据实体类字段数据类型以及Attribute来决定表字段名 类型 主外键 进而形成完整的数据
  • 织梦搜索结果页文档标题标红引起样式错乱解决方法

    在搜索结果页模板search htm中 dede list dede list 里凡是有 alt field title 和 title field title 把里面的 field title 标题标签改成 field title fun
  • 记录字节跳动前端面试,四轮技术面

    一面 笔试题 多刷字节题库 多考js编程题 两道算法题 基本时lotcode简单中等题 1 如果后端传给前端一个很大的数 前端会怎么处理 该怎么处理 分析 不能直接渲染 因为会使页面加载过慢 不利于用户体验 方法 采用懒加载 分页 前端维护
  • MySQL字段约束条件,外键约束条件,表关系

    目录 字符编码与配置文件 统一字符编码 存储引擎 修改存储引擎的方式 自定义选项存储引擎 不同存储引擎产生的表文件有几个 MERGE InnoDB Archive BLACKHOLE blackhole与memory存取数据的特征 Blac
  • Cookie 和 Session 归纳

    首先介绍下基本概念 cookie是服务器通知客户端让其保存健值对的一种形式 客户端有了cookie之后 每次请求就会发送给服务器 每个cookie最大是4kb 服务器创建cookie 1Cookie cookie new Cookie 创建