itan:cookie-session简介

本文介绍了HTTP会话管理中的Cookie和Session技术。Cookie是客户端技术,用于保存用户状态,限制为4KB,数量有限。Session是服务器端技术,每个浏览器独占一个,用于存储用户信息,可存放对象。Session相比Cookie更安全,适用于保存重要信息。同时,文章讨论了两者在实际应用中的使用场景和区别。
摘要由CSDN通过智能技术生成

1.会话

用户打开一个浏览器,点击很多超链接,访问多个web资源,关闭浏览器的过程称为会话。
有状态会话:一个同学来过教室,下次再来,我们知道这个同学曾经来过,称之为有状态会话。例如直播网站等会记住你的登陆状态。
现实中证明身份:带上你的学生证;学校登记你来过;
那么服务端如何知道客户端来过?

  • 服务端给客户端一个信件,客户端下次访问服务端带上信件就好,cookie
  • 服务器登记你来过了,下次你来的时候我来匹配你,seesion

2.保存会话的两种技术

  • 实现Cookie(开发中用不到):
    客户端技术(使用响应对象去分发,请求对象去携带提供)
  • 实现Session:
    服务器技术,利用这个技术,可以保存用户的会话信息。我们可以把信息或者数据放在session中。

3.细节

  • 一个cookie只能保存一个信息;
  • 一个cookie大小限制是4kb;
  • 一个web站点可以给浏览器发送多个cookie,每个站点最多20个;
  • 一个浏览器的cookie上限是300个;
  • 不设置有效期,关闭浏览器,自动失效;或创建一个新的同名cookie,将其有效期设置为0,进行提交,就会立马失效;
  • 如何传中文字符串,可能会有乱码问题,使用URLEncoder.encode(“中文”,”utf-8”)方法对value进行编码设置,接收到之后使用URLDecoder.decode(cookie.getValue(),”utf-8”)进行解码;也可以使用String()的重载方法,String(s,charset)进行编码方式的指定。

4.Session(重点)

什么是session?

  • 服务器会给每一个用户(浏览器)创建一个session对象;
  • 一个session独占一个浏览器对象,只要浏览器没关闭,这个session就一直存在于服务器上,不管开多少个页面,都是同一个ID的session;
  • 用户登录之后,整个网站的其他页面都可以访问这个session;
  • 可以手动invalidate注销session,也可以在web.xml中配置来设置自动注销时间。一般两者都用,重要信息手动注销,其他的不重要信息可以设置几个小时的有效期。
    Session和cookie的区别:
  • Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)
  • Session是把用户的数据写到用户独占的session中,服务器端保存(保存重要信息,减少服务器资源浪费)
  • Session对象由服务器创建并保持,将ID发送给客户端,客户端发送request时携带ID;
  • Cookie对象由服务器创建后将整个cookie发送给客户端,请求时携带;
  • Cookie的构造方法参数是(String,String),只能存放两个字符串;
  • Session可以存放对象;
    使用场景:
  • 一般就用来保存用户信息、购物车的信息;
  • 整个网站中经常使用的数据,保存在session中,去取就ok;

简单原理图示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值