session与cookie的区别与联系

我们都知道session和cookie都是用来做会话跟踪的,这里主要从它们的概念,和使用场景以及它们的区别来进行一个详细的分析

1.session和cookie的概念理解:

在项目开发中我们用到会话跟踪的地方有很多,比如说我们登录时要用session来存储用户信息,使用cookie也可以保存你的信息实现免登陆效果,还有我们平时在网上浏览一些商品的时候,会有很多的推送消息都是你近期经常浏览的东西,这是因为你在进行搜索或者浏览的时候,cookie都会帮你记录下来,当你下次浏览其他页面的时候,就会根据cookie里存储的你之前浏览信息来给你推送特定的内容,cookie的使用很普遍,可以实现很多人性化的服务。

1.1为什么需要session和cookie?

为了记录状态:web强调的是交互,如登录,但是http协议本身就是一种无状态协议,为了实现交互的效果,就需要记录请求的状态,会话技术就产生了

1.2什么是会话跟踪?

会话,指用户登录网站后的一系列动作,比如浏览商品添加到购物车并购买。会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术 是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

2.session和cookie的区别与联系

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方 面,应当使用cookie。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

3.cookie的生命周期

cookie的过期时间: cookie的生命周期默认是浏览器会话期间,关闭浏览器cookie就会消失,如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在浏览器的不同进程间共享。这种称为持久Cookie。
cookie的限制: 不同的浏览器对cookie的大小和个数都有不同的限制

1IE6.0IE7.0/8.0/9.0+OperaFFSafariChrome
cookie个数每个域为20个每个域为50个每个域为30个每个域为50个没有个数限制每个域为53个
cookie大小4095个字节4095个字节4096个字节4097个字节4097个字节4097个字节

4.session的生命周期

每个用户访问服务器都会建立一个session,为了区分用户的唯一身份用户与服务器建立连接的同时,服务器会自动为其分配一个SessionId。这个id是是存放在cookie当中的
cookie中sessionid的作用: 当有两个用户同时进行注册时,服务器怎样才能知道到底是哪个用户提交了哪个表单呢。这时就关系到了sessionid,当用户提交了表单时,浏览器会将用户的SessionId自动附加在HTTP头信息中,当服务器处理完这个表单后,将结果返回给SessionId所对应的用户。使用session储存需要的信息。服务器通过SessionId作为key,读写到对应的value,这就达到了保持会话信息的目的。
session的生命周期: sessinon在用户访问第一次访问服务器时创建,服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为30分钟。也可以调用Session的invalidate方法。比如在退出登录的时候清空session中的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值