码迷,mamicode.com
首页 > 其他好文 > 详细

Cookie和Session

时间:2016-08-23 23:25:34      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

            之所以常常将两者放在一起比较,是因为它们有相同的地方:1.都是解决http无状态的一种方案  2. 都涉及到cookie的操作。

            Cookie是由服务器发送给客户端的,定义一个cookie包含名字、值、过期时间、路径、域这5个基本的要素(如果不设置,就用默认值),另外,还可以设置httpOnly(禁止客户端用脚本读取Cookie)、singed(是否加密)等。Cookie由客户端负责保存,如果不设置cookie的过期时间,则默认为会话cookie,会话结束或者浏览器关闭cookie就消失,这类临时的cookie存储在内存里;如果设置了cookie的过期时间,在cookie失效之前,保存在硬盘上。一旦浏览器被写入了cookie,它之后向服务器发送请求的时候,都会在头部携带cookie信息。

           而session里存储的信息不会发送给客户端。客户端通过浏览器访问服务器的时候,服务器会产生一串随机数作为session id,然后把这个session id写入客户端的cookie(如:connect.id = session id)。等下次客户端再次发来请求时,服务器读取session id的值,在服务器本地查找该session id对应的信息。服务器会把长时间不活动的session清除掉,此时session就失效了(例如,Tomcat的session失效时间是20分钟)。

          所以,session是比cookie更为安全的一种状态记录方式。如果需要记录重要信息如密码,就应该使用session,而如果是不重要的信息,就用cookie来减少服务器资源的占用。浏览器对于cookie的大小和数量都有限制,一般情况下,单个cookie保存的数据不能超过4K,一个站点最多不能超过20个cookie。

Cookie和Session

标签:

原文地址:http://www.cnblogs.com/yingge/p/5801034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!