Cookies 和 Session

    首先二者都是都是为了解决HTTP协议无状态性,而我们又期望服务器能辨别每次访问它的客户端请求是否来自同一客户端时提出的。当然二者在实际应用中不单单是扮演这种功能。

    首先Cookie机制采用的是客户端保持状态的方案,而Session是采用的客户端保持状态的方案。但是我们一般Session解决方案中会要求客户端保存SessionID,这里的Session解决依然会使用客户端Cookie来保存此ID来实现,依然会用到Cookie。(当然还有别的解决方案)。

   这里关于Cookie的使用我们一般步骤是:1.创建Cookie对象;2.设置最大时效;3.将Cookie放入到HTTP响应中;

   这里我们要注意的一点是关于2设置最大时效问题。这里我们对于加了时效的情况都很熟悉,但是有一种不加时效呢?这里就会有会话cookie和持久cookie之说,会话cookie就是我们不设置最大时效的时候产生的,其生命周期类似于Session只在本次会话中有效,当我们关闭浏览器之后就会消失。因为其只是存在于内存中,不会写入硬盘。

   关于Session我们其一要注意的是关于其生命周期的问题,这方面也是我在网上偶然看到的。其创建并不是当我们客户端访问服务器时就产生的,而是我们在如Servlet类中有类似HttpServletRequest.getSession()时才会创建。而其结束时间更不是我们关闭客户端时产生。注:我们关闭客户端只是使客户端内存中的Session cookie失效,而不是服务器端的Session对象失效。其失效时间是我们在如使用Tomcat等时的配置,或者程序中显示调用invalidate()使其失效。

   当然二者区别还有特别多,我下来还应多做了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值