Cookie 和 Session

Cookie 和 Session,第1张

概述Cookie Cookie具有不可跨域名性。在本地计算机保存一些用户 *** 作的历史信息(包括登录信息),并在用户再次访问该站点时浏览器通过HTTP协议将本地cookie内容发送给服务器,从而完成验证。Cookie是有时间限制的,根据生命期不同分成两种: 会话Cookie: 不设置过期时间,一般不保存在硬盘上而是保存在内存里,关闭浏览器窗口,cookie就消失了。 cookie
cookie具有不可跨域名性。在本地计算机保存一些用户 *** 作的历史信息(包括登录信息),并在用户再次访问该站点时浏览器通过http协议将本地cookie内容发送给服务器,从而完成验证。cookie是有时间限制的,根据生命期不同分成两种:    会话cookie:        不设置过期时间,一般不保存在硬盘上而是保存在内存里,关闭浏览器窗口,cookie就消失了。    持久cookie:        设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。cookie实际上是一小段的文本信息:    客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个cookie。    客户端浏览器会把cookie保存起来。    当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一同提交给服务器。    服务器检查该cookie,以此来辨认用户状态。cookie cookie = new cookie("username","aaa");    // 新建cookiecookie.setMaxAge(10);    //设置生命周期,单位为秒(Second)response.addcookie(cookie);    //输出到客户端http协议不仅是无状态的,而且是不安全的。使用http协议的数据不经过任何加密就直接在网络上传播,有被截获的可能:    设置cookie的secure属性为true。浏览器只会在httpS和SSL等安全协议中传输此类cookie。    cookie.setSecure(true); // 设置安全属性cookie有大小限制以及浏览器在存cookie的个数也有限制
Session
在服务器上保存用户 *** 作的历史信息,通过服务器来保持状态。cookie在关闭浏览器窗口后就会消失,但是原来服务器的Session还在,只有等到了销毁的时间会自动销毁服务器一般把Session放在内存里,针对一个web项目,每个用户都会有一个独立的Session(Tomcat中Session的默认失效时间为30分钟):    Session在用户第一次访问服务器的时候自动创建。    需要注意只有访问JsP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session。    如果尚未生成Session,也可以使用request.getSession(true)强制生成Session。    Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。http协议是无状态的,Session不能依据http连接来判断是否为同一客户,需要依赖cookie:    浏览器第一次访问服务器时,服务器会向浏览器发送一个名为JsESSIONID的cookie,它的值为该Session的ID(也就是httpSession.getID()的返回值)。    Session依据该cookie来识别是否为同一用户。同一机器的两个浏览器窗口访问服务器时,会生成两个不同的Session:    因为cookie仅当前浏览器内有效,并且各浏览器窗口间不共享。    但是由浏览器窗口内的链接、脚本等打开的新窗口除外。    这类子窗口会共享父窗口的cookie,因此会共享一个Session。
总结

以上是内存溢出为你收集整理的Cookie 和 Session全部内容,希望文章能够帮你解决Cookie 和 Session所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1034126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存