Cookie与Session 的区别

1、Cookie

说到Cookie,得先谈的HTTP协议,HTTP协议是无状态协议,就是当你发起HTTP
请求断开后,再次发起HTTP请求,与开始一样。也就是说状态不会改变。

  • Cookie的存在就是为了记录HTTP请求的状态,Cookie是一段字符串,由Key和Value
    构成,用于存储在客户端。常用于用户的登录,如当用户登录成功后,服务端返回一段Cookie
    当用户下次发起HTTP请求的时候,会把Cookie发给服务器,服务器检查到Cookie后
    就直接跳转到用户登录后的页面无需登录了。

  • Cookie记录的信息有限,一个Cookie最多之能有4096的字符,而且Cookie保存的内容
    仅支持字符。

  • Cookie也不安全,别人可以窃取用户的Cookie用于登录用户的登录用户的账户。

2、Session

先说SessionId,当用户发起一段HTTP请求的时候,服务器会生成一段用户特有的字符串作为Key
存储在HashTable中,这个Key就是SessionId,而Value就是记录用户与服务器的会话信息(用户信息,操作)等。
而在HashTable中的这个记录就叫Session。
Session常用于购物车,当用户每次请求的时候会发生将Session发送给服务器,
服务器会对SessionId进行匹配。然后更新HashTable。

  • Session的实现

    • 第一种:就是依赖于Cookie的实现,就是上面我们所说的那种,在这里我就不赘述了。

    • 第二种:URL重写。这种实现方式,是通过在请求的URL后面后缀JESSIONID=xxx这种方式将JESSIONID传递给客户端。

    • 第三种:隐藏的表单域。就是在FORM表单中,设置一个隐藏域,将JESSIONID放置其中,一并发送给服务器端。

  • Session保存到服务器上,比Cookie安全,但是会增加服务器的压力

  • session的结构,Session内部采用CurrentHashMap来存储的attribute
    在这里插入图片描述
    可以参考着篇文章关于Cookie与Session的应用-登录验证
    https://blog.csdn.net/qq_36781505/article/details/88541057

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值