浅谈cookie/session与的生命周期

来源:互联网 发布:linux黑屏 编辑:程序博客网 时间:2024/06/06 10:53

 

cookie/session与的生命周期 

最近学习到cookie和session.根据网上的资料还有我个人的理解,整理了一些关于cookie/session 的知识。

什么是cookie?

cookie是浏览器存储信息的方案。

它可以用来存储一些临时信息。如登陆名,密码的缓存cookie是分域名进行存储的,每个域名下面能够存储的cookie大小为4k。cookie中存储的信息,可以被所有的当前域名下的页面共享!But,cookie是有目录限制的,根目录设置的cookie可以在所有的目录下进行访问然而子目录中设置的cookie父目录中并不能访问。这种cookie被称为会话cookie.其一般不保存在硬盘上.而是保存在内存中.

cookie的应用:

     我们一般不会在cookie中存储大量的数据,原因如下:

     1. 容量太小,一般浏览器中的cookie容量只有4K,转成中文也就是几千个汉字。

     2. 由于每次请求都会携带cookie信息,所以会影响传输效率,访问速度!


cookie的生命周期

如果cookie不设定时间的话就表视它的生命周期为浏览器会话的期间,只要关闭浏览器,cookie就消失了。

如果设置了cokie的过期时间.那么浏览器会把cookie保存到硬盘中,再次打IE时会依然有效.直到超过设置的有效期

$.cookie(key, value, {path:"/", expire: new Date("2017-01-01")})  设置过期时间.

注:存储在硬盘中的cookie可以在不同IE间共享.

什么是session?

session是在服务端存储信息的方案。

当客户端发起一个HTTP请求时服务端会创建一个session.并分配一个sessionID作为服务端对客户端的识别。当服务器处理完后,会将sessionID同reponse 一起传回客户端,并将其存到cookie中,Session存储位置是在服务器端。一般为了防止在服务器的内存中(为了高速存取),Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。

当客户端再发送请求的时候.会将sessionID连同request一起发送给服务端,服务端再根据传过来的sessionID将这次request与保存在服务端的session对象联系起来.此时的session对象已不是NEW STATE状态.

Session的生命周期

1.服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。

2.调用Session的invalidate方法。

注:当禁用cookie时也是不能使用session的.

 (根据网络资料整理)

 

2 0
原创粉丝点击