
本文共 2381 字,大约阅读时间需要 7 分钟。
Cookie与Session2
会话:
一次会话中包含多次请求和响应。
-
—次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断幵为止
-
功能:在一次会活的范围内的多次请求间,共享数据
-
方式:
-
客户端会话技术:Cookie (储存在浏览器)
-
服务器端会话技术:Session (储存在服务器)
Cookie:
使用步骤
- 创建Cookie对象,绑定数据
new Cookie(String name. String value)
- 发送Cookie对象
response.addCookie(Cookie cookie)
- 获取cookie,拿到数据
Cookie[] request.getCookies()
原理图:
基于响应头set-cookie与请求头cookie的实现:
cookie的細节
- 一次可不可以发送多个cookie?
可以
可以创建多个cookie对象,使用response调用多次addcookie方法发送cookie即可.
-
cookieS浏览器中保存多长时间?
-
默认情况下,当浏览器关闭后,Cookie数据被销毀
-
持久化存储:
setMaxAge(int seconds)
1.正数:将cookie据写到硬盘的文件中.持久化储存, 并指定Cookie存活时间,时间到后,cookie文件自动失效
2.负数:默认値
3.零:删除Cookie信息
-
cookie能不储存中文?
在tomcat 8之前cookie中不能原接存储中文数据., 要将中文数据转玛===>一般采用URL编码(%XE3) •在tomcat 8之后,cookie支持中文数据。
-
cookie共享问题?
1.假设在一个tomcat服务器中,部署了多web项目,那么在这些web项目中cookie能不能共享?
•默认情况下cookie不能共享
• setPath(String path):设置cookie的获取范围。默认情况下,设置当前的虚拟目录
•如果要共享,则可以将path设置为“/”
2不同的tomcat服务器间cookie共享问题?
- setDomain(String path):如果设置一级域名相同,那么多个服务器之间cookie可以共享
setDomain( " .baidu.com"),那么 tieba.baidu.com和news. baidu.com中cookie 可以共享
Cookie的特点和作用
- cookie存储数据在客户端浏览器
2.浏览器对于单个cookie的大小有限制(4kb)以及对同一个域名下的总cookie数置也有限制(20个)
作用: - cookie—般用于存出少量的不太敏感的数据
- 在不登录的情况下,完成服务器对客户端的身份识别
Session
(终于画好了图😁😁😁)
Session :
-
概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。Httpsession
-
快速入门:
1.获取Httpsession对象:
HttpSession session = request.getSession();
2.使用HttpSession对象:
Object getAttribute(String name)void setAttribute(String name, Object value)void removeAttribute(String name)
3.原理
Session的实现是依赖于Cookie的。
4.细节:
- 当客户端关闭后,服労器不关闭,两次获取session是否为同一个?
默认情况下。不是。
如果需要相同,则可以创建cookie,键为jsessionid,设置最大存活时间,让cookie持久化保存。
Cookie c = new Cookie(“JSESSIONlD”,session.getId());
C. setMaxAge(60*60);
response.addCookie©;
- 客户端不关闭,服务器关闭后,两次获取的session是同一个吗?
不是同一个,但是要确保数据不丢失
*session的钝化
*在服务器正常关闭之前,将session对象系列化到硬盘上
session的活化:
*在服务器启动后,将session文件转化为内存中的session对象即可。
失效
例如:默认打开没有网站30 min没有任何操作session失效
session什么时候被销毁?
-
服务器关闭
-
session对象调用invalidate。
-
session默认失效时间30分钟
选择性配置修改
< session-config>
< session-timeout>30</ session-tiomout>
</ session-config>
session的特点
- session用于存储一次会话的多次请求的数据,存在服务器端
- session可以存储任意类型,任意大小的数据
- 缺点:对服务器压力大
session与Cookie的区别:
-
session存储数据在服务器端,Cookie在客户端
-
session没有数据大小限制,Cookie有
-
session数据安全,Cookie相对于不安全
-
别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
单个cookie保存的数据不能超过4K,(减轻Cookie在浏览器与服务器之间传输对服务器造成的压力)很多浏览器都限制一个站点最多保存20个cookie。
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
发表评论
最新留言
关于作者
