A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘伯阳 中级黑马   /  2012-5-30 18:16  /  2514 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

cookie和session的区别是什么。他们与服务器端是怎么连接的?他们保存在服务器端还是在客户端?

5 个回复

倒序浏览
cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
cookie把信息保存在客户端。
session把信息保存在服务器端。但会随着浏览器的关闭而失效。
回复 使用道具 举报
本帖最后由 黑马-唐磊 于 2012-5-30 19:25 编辑

Cookie是客户端技术,服务器端可以获得请求中的Cookie.首先Cookie 是一个 key-value  ---- public Cookie(String name,String value),setValue与getValue方法 ---- 用来存取Cookie对象里面值.setMaxAge与getMaxAge方法(单位:秒)  ---- 用来设置和获取Cookie 的存在时长,当没有设置Cookie时限时,默认不产生Cookie文件.

Session是服务器端技术,服务器端会为每一个浏览器创建单独Session,Session 每个浏览器对应一个,存放数据 .浏览器A 访问 服务器端 ---- 会为A创建一个Session对象 ----- JsessionId(32位) 唯一的,服务器端 以Cookie方式 将jsessionid回写给浏览器
下次浏览器在访问服务器时候 自动携带 jsessionid ----- 对应Session对象.

Cookie和Session的生命周期
Cookie对象由服务器创建的,Cookie会通过resp的addCookie写回浏览器端,如果说你不设置maxAge,那么这个Cookie是一个会话(浏览器打开产生会话,浏览器关闭,终止会话)级Cookie,浏览器关闭,客户端Cookie就消失,如果你设置了maxAge,Cookie会被存储到硬盘上,那么Cookie会在到期后自动删除!服务器端不保存Cookie
Session由服务器端创建,会以一个唯一sessionId标识,session默认存活时间30分钟(如果客户端30分钟内没有访问过Session,那么Session将过期),Session可以设置过期时间
setMaxInactiveInterval(int interval)
          Specifies the time, in seconds, between client requests before the servlet container will invalidate this session.


评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼上正解
回复 使用道具 举报
cookie 和session 的区别:

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

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

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

4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。

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

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马