web-cookie和session

1.会话技术:

Cookie

Session

 

会话技术:

1.会话:一次会话中包含多次请求和响应。

一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到一方断开为止。

2.功能:在一次会话的范围内的多次请求间,共享数据。

3.方式:

1.客户端会话技术:Cookie

2.服务器端会话技术:Session

 

Cookie:

1.概念:客户端会话技术,将数据保存到客户端

2.快速入门:

步骤:

1.创建Cookie对象,绑定数据。

Cookie(String name,String value);

2.数据发送Cookie对象

response.addCookie(Cookie cookie)

3.获取Cookie,拿到数据。

Cookie[] request.getCookies()

 

实现原理:

基于响应头set-cookie和请求头cookie实现

Cookie的细节:

1.一次可不可发送多个cookie?

可以:可以创建多个cookie对象,使用response调用多次addCookie方法发送cookie即可。

2.cookie在浏览器中保存多长时间?

1.默认情况下,存在浏览器内存中,当浏览器关闭后,Cookie数据被销毁。

2.设置cookie的生命周期,持久化存储:

setMaxAge(int seconds);存活时间

1.整数:将cookie数据写道硬盘的文件中,持久化存储。

2.负数:默认值,存在内存中。

3.零:删除cookie信息。

3.cookie能不能存中文?

在tomcat 8之间,cookie中不能直接存储中文数据。

需要将中文数据转码--一般采用URL编码(%e3)。

在tomcat8之后,cookie中能直接存储中文数据。

4.cookie获取范围多大,共享问题?

假设在一个tomcat服务器中,部署多个web项目,那么在这些web项目中cookie能不能共享?

默认情况下cookie不能共享

setPath(String path):设置cookie的获取范围,默认情况下,设置当前的虚拟目录。

cookie.setPath("/");这样是可以共享的cookie。

 

不同的tomcat服务器 上cookie可以共享吗?

1.setDomain(String path);如果设置一级域名相同,那么多个服务器之间cookie可以共享。

setDomain(".baidu.com"),那么tieba.baidu.com和news.baidu.com中的cookie可以共享。

 

cookie的特点

1.cookie存储数据在客户端浏览器中。

2.浏览器中单个cookie的大小有限制4kb,以及同一个域名下的总cookie数量也有限制(20个)

作用:

1. cookie一般用于存出少量的不太敏感的数据

2. 在不登录的情况下,完成服务器对客户端的身份识别

 

Session:

1.概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中,httpSession

2.HTTPSession对象:

1.获取HttpSession对象

HttpSession session = request.getSession();

2.使用HttpSession对象

setAttribute(String key,Object obj)

removeAttribute(String key);

Object getAttribute(String key);

服务器如何确保在一次会话范围内,多次获取的Session对象是同一个?

Session是依赖于Cookie的。

1.第一次获取Session,没有Cookie,会在内存中创建一个新的Session对象。有一个Session对象id.

2.这个id被设置到Cookie中。set-cookie

3.下次再去访问服务器,在Cookie中携带session的id。

4.通过id查找Session对象。

 

细节:

1.当客户端关闭后,服务器不关闭,两次获取的Session对象是否为同一个?

默认情况下,不是。

期望客户端关闭后,session也能相同,可通过设置Cookie来达到需求。设置Cookie的失效时间,将Session的id存入Cookie。

2.客户端不关闭,服务器关闭后,两次获取的Session对象是否为同一个?

不是同一个。但是要确保数据不丢失。

Session的钝化:在服务器正常关闭之前,将session对象序列化到硬盘上。

Session的活化:在服务器启动后,将Session序列化的文件转化为内存中的Session对象即可。

3.Session什么时候被销毁?

1.服务器关闭

2.Session调用invalidate()方法。

3.默认的失效时间30分钟。是可以在tomcat中web.xml中配置失效时间。

 

Session的特点:

1.session用于存储一次会话的多次请求的数据,存在服务器端。

2.session可以存储任意类型,任意大小的限制。

 

sesion与cookie的区别:

1.数据存储的地方不同。

2.数据大小的限制不同。

3.session安全,cookie相对不安全。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值