Cookie 和Session 的区别:

一 :什么是Cookie
     Cookie是在浏览器访问Web服务器的某个资源时,由Web服务器在HTTP响应消息头中附带传送给浏览器的一小段数据。
   一旦Web浏览器保存了某个Cookie,那么它在以后每次访问该Web服务器时,都应在HTTP请求头中将这个cookie回传给Web服务器。
一个cookie主要由标识该信息的名称(name)和值(value)组成。

//创建Cookie

Cookie ck = new Coookie("code",code);
ck.setPath("/web")//设置Cookie的路径
ck.setMaxAge(-1);
//内存存储,取值有3种 >0有效期(单位秒)   =0 浏览器关闭  <0 内存存储,默认为-1
response。addCokkie(ck);
// 添加到response对象中,响应发送给客服端
//注意,有效路径,当访问资源的上一级目录,不带主机名

二 :Cookie优点:

  简单性:Cookie是一种基于文本的轻量结构,包含简单的键值对。
  数据持久性:Cookie默认在过期之前是可以一直存在客户端浏览器上的。
       

 Cookie缺点:
    大小受到限制:大多数浏览器对Cookie的大小有4K、8K字节的限制。
    用户配置为禁用:有些用户禁用了浏览器或客户端设备接收cookie的能力,因此限制了这一功能。潜在的安全风险:Cookie 可能会被篡改。会对安全性造成潜在风险或者导致依赖于Cookie 的应     用程序失败。
 

要注意:

Cookie默认不支持中文,只能包含ASCII字符,所以Cookie需要对Unicode字符进行编码,否则会出现乱码。
        编码可以使用java.net.URLEncoder类的encode(String str,String encoding)方法
        解码使用java.net.URLDecoder类的decode(String str,String encoding)方法

//使用中文的Cookie. name 与 value都使用UTF-8编码.
Cookie cookie = new Cookie(
URLEncoder.encode("姓名”,“UTF-8") ,
URLEncoder.encode(“老邢”,“UTF-8" ) );
//发送到客户端
response .addCookie( cookie) ;

         

 Session

    一:Session的概念:

     Session用于记录用户的状态。Session指的是在一段时间内,单个客户端与Web服务器的一连串相关的交互过程。在一个Session中,客户可能会多次请求访问同一个资源,也有可能请求访问各种不同的服务器资源。 

   二 :Session原理
服务器会为每一次会话分配一个Session对象
同一个浏览器发起的多次请求,同属于一次会话(Session)
首次使用到Session时,服务器会自动创建Session,并创建Cookie存储Sessionld发送回客户端
 

  三:Session使用
        Session作用域:拥有存储数据的空间,作用范围是一次会话有效。一次会话是使用同一浏览器发送的多次请求。一旦浏览器关闭,则结束会话。可以将数据存入Session中,在一次会话的任意位置进行获取。可传递任何数据(基本数据类型、对象、集合、数组)

//1.获取Session
session是服务器端自动创建的,,通过request对象获取

//获取Session对象
Httpsession session = request.getsession() ;
System.out.println( "Id: "+session. getId()); //唯一标记,

//2 Session保存数据
setAttribute(属性名,Object)保存数据到session中
session.setAttribute("key" , value); 
//以键值对形式存储在session作用域中。

//3 Session获取数据
getAttribute(属性名);获取session中数据
session.getAttribute("key" ) ; 
//通过String类型的key访问0bject类型的value

//4 Session移除数据
removeAttribute(属性名);
//从session中删除数据
session .removeAttribute( "key"); 
//通过键移除session作用域中的值

//5.Session与Request应用区别
//request是一次请求有效,请求改变,则request改变
//session是一次会话有效,浏览器改变,则session改变

cookie 和session 的区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的cookie并进行分析
   考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用cookie。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、建议:
   将登陆信息等重要信息存放为Session
   其他信息如果需要保留,可以放在Cookie中

6.简单的来说:

                 cookie就是放在你自己的电脑上面,sesson是放在服务器上面的。
                 cookie就像是你打开淘宝的图片,会缓存到你的本地,就是cookie。
                 sesson就是你打开微信,你浏览信息会记录在服务器上面,就是sesson

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值