首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
Cookie和Session
返回列表
发新帖
Cookie和Session
[复制链接]
发表于 2023-10-12 08:17:40
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
1. 前言
Cookie和Session是Web开发中常用的概念,用于在客户端和
服务器
之间
存储
和跟踪用户信息。
2. Cookie
2.1 什么是Cookie
Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如Microsoft Edge、Firefox、Google Chrome等都支持Cookie。Cookie是一种在Web浏览器中
存储
的小型文本文件,用于在客户端和
服务器
之间传递数据和跟踪用户信息。当您首次访问一个网站时,
服务器
会将一个特殊的标识符(称为cookie)发送到您的浏览器,然后浏览器将这个cookie保存在本地。
2.2 Cookie实现的
功能
跟踪和记忆用户的偏好设置、登录状态和其他个性化信息。
记录用户的浏览习惯,以便网站提供更相关和定制的内容。
支持购物车
功能
,
存储
商品信息和购买选项。
进行广告定向投放,根据用户的浏览行为提供相关的广告。
2.3 Cookie的工作原理
客户端请求:当用户在浏览器中发起一个请求访问一个网站时,浏览器会将该请求发送给服务器。
服务器响应:服务器接收到客户端的请求后,会生成一个或多个包含要发送给浏览器的Cookie的HTTP响应。
Cookie发送:服务器将生成的Cookie通过HTTP响应的头部信息(Set-Cookie)发送给浏览器。Cookie通常包含了名称、值、域名、路径、过期时间等属性。
Cookie存储:浏览器接收到服务器发送的Cookie后,会将其保存在本地的Cookie存储中,按照域名和路径进行分类存储。
后续请求:随后,当用户浏览器再次访问同一网站时,浏览器会将该网站相关的Cookie信息通过HTTP请求头部(Cookie字段)发送给服务器。
服务器识别:服务器接收到包含Cookie的请求后,会解析Cookie,并根据其中的信息进行认证、跟踪用户状态等操作。服务器可以通过读取Cookie中的值来获取用户的个性化设置、登录状态等信息。
注意:对于每个网站,浏览器可以存储多个相关的Cookie,并根据域名和路径来区分。 Cookie可以设置过期时间,如果没有设置过期时间,Cookie会默认被视为会话性Cookie,即在浏览器关闭后会被删除。此外,Cookie存储在浏览器中,因此可以被其他网站访问和读取。为了保护用户的隐私和
安全
,网站通常会采取一些
安全
措施,如使用
加密
、签名和限制Cookie的作用域等。
3. Session
3.1 什么是Session
Session是服务器端的概念,它在服务器内存或
数据库
中存储一些用户信息。当用户首次访问网站时,服务器会生成一个唯一的session ID并将其存储在Cookie中发送给浏览器,同时在服务器端创建一个对应的session对象。随后,浏览器每次请求都会携带session ID,服务器通过该ID来找到对应的session对象,从而获取或更新用户信息。session相对于cookie更
安全
,因为用户无法修改其内容。
3.2 为什么要用Session
由于cookie 是存在用户端,而且它本身存储的尺寸大小也有限,最关键是用户可以是可见的,并可以随意的修改,很不安全。那如何又要安全,又可以方便的全局读取信息呢?于是,这个时候,一种新的存储会话机制:session 诞生了
3.3 Session的工作原理
会话的创建:当用户首次访问一个网站时,服务器会为该用户创建一个唯一的会话,并为其分配一个唯一的会话ID。
会话ID的传递:服务器将会话ID发送给客户端,可以通过Cookie的方式在HTTP响应中设置一个名为"session_id"的Cookie,也可以使用URL重写等方式在每个请求中传递会话ID。
会话数据存储:服务器在内存或
数据库
等存储介质中存储与会话ID相关的数据,如用户的登录状态、购物车内容等。
会话数据访问:随后,当用户再次发送请求给服务器时,会携带上一步中获取到的会话ID。服务器通过会话ID找到对应的会话数据,并进行处理和响应。
会话的更新:在用户的每次请求中,服务器可以根据需要更新会话数据。例如,用户添加商品到购物车,服务器会更新购物车内容的数据。
会话的销毁:会话可以有一定的生命周期,超过指定时间或用户主动注销时,服务器会销毁该会话及其相关数据。
注意:会话数据存储在服务器端,因此对服务器的
负载
和存储需求会有一定的影响。服务器通常会根据一定的策略管理会话的生命周期,包括设置会话超时时间、数据清理等,以平衡资源的使用和安全性的考虑。
4. 区别
存储位置不同:Cookie存储在客户端浏览器中,而Session存储在服务器端。
安全性不同:Cookie可以被客户端进行修改或删除,存在一定的安全隐患;而Session存在于服务器的内存中,对于客户端是不可见的,因此比Cookie更加安全。
存储容量不同:Cookie存储容量比较小,通常只能存储几KB的数据,而Session存储容量相对较大,可以存储数MB的数据。
5. 联系
都是用于存储和维护用户状态的技术。
可以解决HTTP协议的无状态问题,保持用户在一段时间内的登录状态。
在实际应用中经常会同时使用Cookie和Session,通过Cookie维护Session的标识符,实现用户状态的保存和管理。
6. 总结
Cookie是由服务器发送给浏览器存储的数据,而Session是服务器端存储用户信息的一种机制。它们都可以用于跟踪用户状态和记住用户信息,但安全性和存储位置不同。Session比Cookie相比较Session更加安全一点。但Restful架构中提到,服务端不能用来保存用户的状态,故一般用Cookie来保存一些信息。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
继续阅读请点击广告
回复
使用道具
举报
返回列表
悠扬随风
+ 我要发帖
×
登录参与点评抽奖,加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表