cookie和session

简介: 在生活中,虽然周围的事情很多,但是有很多神奇的东西在帮助我们记录我们的生活轨迹,让我们的生活变得更加简单和快捷。比如,我们在使用网易博客登录时,发现可以通过设置"7天内免登录"来使网页记录自己的用户名和密码,使用浏览器时也可以打开自己刚关闭的网页,逛淘宝时,页面会推荐这几天自己正在注意的一些商品。。。这是为什么呢?

在生活中,虽然周围的事情很多,但是有很多神奇的东西在帮助我们记录我们的生活轨迹,让我们的生活变得更加简单和快捷。比如,我们在使用网易博客登录时,发现可以通过设置"7天内免登录"来使网页记录自己的用户名和密码,使用浏览器时也可以打开自己刚关闭的网页,逛淘宝时,页面会推荐这几天自己正在注意的一些商品。。。这是为什么呢?


      我们都已经学习过了Http协议,它具有无状态性和无连接性。无连接性限制每次连接至处理一个请求,服务器处理完客户端的请求,并接受到客户端的应答后,即断开连接。而无状态是指对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传。也意味着服务器无法从连接上跟踪会话,一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的会话了。那么浏览器是如何记住我们的信息的呢?


       为了记住我们的信息,需要跟踪我们的会话,即使用cookie和session。因为无法从网络连接上无法确认客户身份,所以,使用cookie机制相当于给客户端们颁发了一个通行证,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。Cookie实际上是一小段的文本信息,客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。


20160814203325445.jpg


      而session机制是将客户状态保存在服务器上,和客户端浏览器访问服务器时,服务器把客户端信息以某种形式记录在服务器上。注意,在上面是说,给客户端设置了cookie机制,这里将session机制设置在了服务器上。客户端浏览器再次访问时,只需要从改session中查找该客户的状态即可。如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。


   


  虽然Session保存在服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持。这是因为Session需要使用Cookie作为识别标志。HTTP协议是无状态的,Session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为JSESSIONID的Cookie,它的值为该Session的id(也就是HttpSession.getId()的返回值)。Session依据该Cookie来识别是否为同一用户。(摘自网络)



  但是这两种机制都不是无限期保存用户信息的,以网易博客7天内免登录来说,他将cookie的保存时间设置成了7天,而session有自动销毁机制(设置失效时间)如果一段时间内浏览器如果没有和服务器发生任何的交互,则session会定时销毁,默认20分钟。


  以上是我在查阅了浏览器和服务器之间的会话机制后对cookie和session的简单了解,如果偏差,请各位不吝赐教。
















相关文章
|
2月前
|
存储 自然语言处理 API
Session、cookie、token有什么区别?
Session、cookie、token有什么区别?
36 1
|
1月前
|
存储 编解码 应用服务中间件
会话跟踪技术(Session 以及Cookie)
会话跟踪技术(Session 以及Cookie)
|
1月前
|
存储 前端开发 小程序
表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序
表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序
|
2月前
|
存储 Web App开发 安全
Cookie和session 及Web相关工具
Cookie和session 及Web相关工具
|
19天前
|
存储 前端开发 JavaScript
VSCode调试揭秘:Live Server助力完美测试Cookie与Session,远超“Open in Browser“!
VSCode调试揭秘:Live Server助力完美测试Cookie与Session,远超“Open in Browser“!
|
19天前
|
存储 安全 网络协议
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
|
1月前
|
JSON 前端开发 Java
Spring第一课,了解IDEA里面的文件,回顾Cookie和Session,获取Session,Cookie,Header的方式
Spring第一课,了解IDEA里面的文件,回顾Cookie和Session,获取Session,Cookie,Header的方式
|
24天前
|
存储 移动开发 JavaScript
对于session、cookie、 localStorage和SessionStorage的理解
对于session、cookie、 localStorage和SessionStorage的理解
26 0
|
26天前
|
存储 安全 关系型数据库
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
|
1月前
|
中间件 数据库 Python
Django——会话.Cookie&Session
Django——会话.Cookie&Session