Cookie&Session的原理与细节
来源:互联网 发布:电脑隐藏软件 编辑:程序博客网 时间:2024/06/07 02:13
COOKIE
COOKIE的原理:
- 服务器创建Cookie对象,保存会话数据,把Cookie数据发送给浏览器, response.addCookie(cookie); (响应头:set-cookie: name=jacky)
- 浏览器获取cookie数据,保存在浏览器缓存区,然后在下次访问服务器时携带cookie数据 (请求头: cookie: name=jacky)
- 服务器获取浏览器发送的cookie数据 request.getCookies();
1)cookie的数据类型一定是字符串,如果要发送中文,必须先对中文进行URL加密才可以发送。URLEncoder.encode();
2)setPath(path): 修改cookie所在的有效路径。什么是有效路径? 如果把该cookie设置到某个有效路径下,然后当浏览器访问这个有效路径的时候,才会携带cookie数据给服务器。
3) setMaxAge(整数) : 设置cookie的有效时间
正整数: 表示超过了正整数的数值的时间,cookie就会丢失!(时间单位:秒)
负整数: 表示如果浏览器关闭了,cookie就会丢失!(默认情况下)
0 : 表示删除同名的cookie
4)cookie可以有多个,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB
SESSION
1)服务器创建Session对象,服务器会给这个session对象分配一个唯一的标记JSESSIONID
2)把JSESSIONID作为Cookie发送给浏览器
3)浏览器得到JSESSIONID保存下来,在下次访问时携带这个JSESSIONID去访问服务器
4)服务器得到JSESSIONID,在服务器内存中搜索是否存在指定JSSESSINOID的session对象
5)如果找到,则返回这个session对象
6)如果找不到,可能直接返回null,或者再创建新的session对象。
HttpSession session = request.getSession();
结论: 通过JSESSIONID在服务器中查询对应的session对象。
SESSION细节:
1)setMaxInactiveInterval(秒数): 设置session对象的有效时间,如果设置为0或负数永远不会销售session。
问题:session在什么销毁?
一次会话的时间!注意不是浏览器关闭,session对象就销毁!!!
默认情况: 等待30分钟空闲时间,session对象才会销毁。
<!-- 设置全局的session对象的过期时间(分钟)web.xml里<web-app>下添加,注意最小设置1,只能是整数 --><session-config><session-timeout>1</session-timeout></session-config>2)可以让JSESSIONID不会随着浏览器关闭而丢失!!!
/** * 设置JSESSIONID的时间,不会随着浏览器关闭而丢失! */Cookie c = new Cookie("JSESSIONID",session.getId());c.setMaxAge(1*30*24*60*60);//1个月response.addCookie(c);3)直接手动销毁sessino对象
invalidate();
4) 创建或得到session对象
request.getSession(true) 等价于request.getSession() :
创建或得到session对象,查询session对象(查询JSESSIONID),如果没有sessino对象,则创建新的session对象
request.getSession(false) :
得到session对象。 查询session对象,如果没有session对象,直接返回null
COOKIE与SESSION的对比
Cookie特点:
- 会话数据放在浏览器端
- 数据类型只能string,而且有大小限制的
- 相对数据存放不安全。
Session特点:
- 会话数据放在服务器端(服务器内存),占用服务器资源
- 数据类型任意类型,没有大小限制的。
- 相对安全
- Cookie&Session的原理与细节
- cookie与session的机制与原理
- Cookie与Session的作用与原理
- Cookie与会话--Session与SSO的实现细节研究
- Cookie和Session的细节
- session 与 cookie的区别及原理
- Cookie与Session的工作原理解析
- Session的原理解析【Cookie与Session的关系】
- Cookie的使用细节;Session的概述
- Cookie的使用细节;Session的概述
- Cookie和Session的原理
- Cookie和Session的原理
- cookie和session的原理
- PHP中session 与cookie的原理和关系1
- PHP中session 与cookie的原理和关系1
- cookie与session区别联系与原理
- Cookie和Session的作用,cookie、Session工作原理
- 【WEB开发原理】Session与Cookie详解
- git远程仓库版本回退
- C语言基础 11 宏
- android收集bug(异常)信息,上传至服务器
- 洛谷P1602 Sramoc问题 题解报告【同余+bfs】
- 《JAVA编程思想》捕获转换
- Cookie&Session的原理与细节
- 硕士论文答辩需要注意哪些问题?
- 调用C++dll
- Vue的一些API理解整理,如何一次引入多次调用
- 笔记本连接双显示屏相关问题
- 【PDF下载】大数据峰会之专利大数据的云上裂变之路
- linux下编译qt4错误及解决办法
- Spring Web Client# RestTemplate
- 9. Palindrome Number