cookie与session区别和联系

本文详细介绍了在Web应用中如何通过Cookie和Session解决HTTP协议无状态性问题,包括Cookie的作用、会话管理、登录验证、兴趣推荐以及Session的原理、区别,强调了Cookie的安全性和存储容量限制。
摘要由CSDN通过智能技术生成

在Web应用中,HTTP协议是无状态的,每次请求都是独立的,服务器无法直接识别一个用户的不同请求之间的关联。这就导致了如果我们希望在一个会话中保持一些数据的状态,比如用户的身份认证信息、购物车内容等,就需要借助Cookie和Session来实现数据的共享。

cookie

Cookie是一种用于客户端和服务器之间传递数据的机制,是服务器发送到用户浏览器并保存在本地的一小块数据。

当用户再次访问同一个网站时,浏览器会将存储在本地计算机上的Cookie发送给服务器,服务器可以通过读取Cookie中的信息来识别用户并提供相应的服务。

对于会话管理,登录验证(保存密码免登录) 兴趣推荐 统计分析(访问记录)

会话管理----在客户端和服务器之间管理用户的会话。服务器可以通过在响应中设置Cookie来发送一个唯一的标识符(Session ID)给客户端,服务端找到数据库对应的session来进行信息交互,这就是为什么我们在购物网站将商品加入购物车,下次登录后购物车内容依然能显示

登录验证-----我们为了方面经常选择记住密码,这些信息是以cookie的形式记录在客户端,当下次再登录时用户端对服务端的请求中包含了密码的cookie信息,服务端验证后就能实现免密登录

兴趣推荐-----大家都可能遇到这样一个情况,刚在京东上浏览了手机,刷抖音时就刷到抖音推送的手机广告,这里就是“第三方cookie”的概念,抖音可能会在你的京东中设置一个Cookie,用于跟踪你在其的浏览行为,从而提供个性化的广告内容。所以第三方cookie信息返回的是广告推送商的服务器

注:

如果在 Set-Cookie 中不指定 Domain 属性,Cookie 的生效范围仅限于当前域名 (即请求Host 头指定的域名),它被称为 Host-Only Cookie。 domain属性指定了Cookie可用的域名范围,允许在特定域名及其子域名下共享Cookie信息。----这样就实现了一次登录多页面免认证

Path 属性用于指定 Cookie 的生效路径,只有访问这个路径或其子路径时,浏览器才会发送这个 Cookie。---限制cookie生效范围

Expires 属性---限制Cookie 的有效期

Secure属性---给 Cookie 设置 Secure 属性后,该 Cookie 只会在 HTTPS 请求中被发送给服务器

session

Session是一种在服务器端存储数据的机制。当用户访问一个网站时,服务器可以为该用户创建一个专门的Session对象,并将该对象存储在服务器内存中。接下来,当用户进行一系列操作时,服务器可以通过读取Session对象中的数据来识别用户并提供相应的服务

联系

首先明确一点,Session 和 Cookie 没有直接的关系。可以认为 Cookie 只是实现 Session 机制的一种方法途径而已,没有 Cookie 还可以用别的方法。

img

Session 机制将用户的所有活动信息、上下文信息、登录信息等都存储在服务端,只是生成一个唯一标识 ID 发送给客户端,后续的交互将没有重复的用户信息传输,取而代之的是唯一标识 Session-ID

当浏览器下次请求别的资源的时候,浏览器会将 sessionID 放置到请求头中,服务器接收到请求后解析得到 sessionID,服务器找到该 id 的 session 来确定请求方的身份和一些上下文信息。

区别

  1. 存放位置: Cookie存在于你的浏览器中,而Session存在于服务器端。

  2. 安全性: 因为Cookie存在于浏览器中,所以可能会被攻击者窃取或篡改。而Session存在于服务器端,相对来说更安全一些。

  3. 存储容量: Cookie的存储容量有限,而Session一般可以存储更多的信息。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值