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的简单了解,如果偏差,请各位不吝赐教。
















相关文章
|
18天前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
40 4
|
22天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
1月前
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
164 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
1月前
|
存储 安全 数据安全/隐私保护
Cookie 和 Session 的区别及使用 Session 进行身份验证的方法
【10月更文挑战第12天】总之,Cookie 和 Session 各有特点,在不同的场景中发挥着不同的作用。使用 Session 进行身份验证是常见的做法,通过合理的设计和管理,可以确保用户身份的安全和可靠验证。
21 1
|
2月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
2月前
|
存储 前端开发 Java
JavaWeb基础7——会话技术Cookie&Session
会话技术、Cookie的发送和获取、存活时间、Session钝化与活化、销毁、用户登录注册“记住我”和“验证码”案例
JavaWeb基础7——会话技术Cookie&Session
|
2月前
|
存储 安全 NoSQL
Cookie、Session、Token 解析
Cookie、Session、Token 解析
62 0
|
3月前
|
存储 JavaScript 前端开发
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
210 1
|
3月前
|
存储 安全 搜索推荐
【JavaWeb 秘籍】Cookie vs Session:揭秘 Web 会话管理的奥秘与实战指南!
【8月更文挑战第24天】本文以问答形式深入探讨了Web开发中关键的会话管理技术——Cookie与Session。首先解释了两者的基本概念及工作原理,随后对比分析了它们在存储位置、安全性及容量上的差异。接着,通过示例代码详细介绍了如何在JavaWeb环境中实现Cookie与Session的操作,包括创建与读取过程。最后,针对不同应用场景提供了选择使用Cookie或Session的指导建议,并提出了保障二者安全性的措施。阅读本文可帮助开发者更好地理解并应用这两种技术。
61 1
|
3月前
|
存储 安全 搜索推荐
深入探讨Session和Cookie的概念、用途以及如何在Java Web开发中有效地使用它们进行用户状态管理。
在Java Web开发中,Session和Cookie是管理用户状态的核心技术。Session存储于服务器端,通过唯一的Session ID识别用户,确保数据安全与隐私;Cookie则存储于客户端,用于记录用户偏好等信息。两者各有优势:Session适合存储敏感数据,但需合理管理避免资源浪费;Cookie便于持久化存储,但在安全性上需谨慎设置。开发者可通过Servlet API轻松操作二者,实现个性化用户体验与应用性能优化。
60 2