会话技术 cookie 和 Session(1)

Cookie
Cookie 属于客户端会话技术,它是服务器发送给浏览器的小段文本信息,存储在客户端浏览器的内存中或硬盘上。当浏览器保存了Cookie 后,每次访问服务器,都会在HTTP请求头中将这个Cookie 回传给服务器

Cookie 的分类
Cookie分为两种
1.会话级别Cookie (默认):Cookie 保存到浏览器的内存中,浏览器关闭则Cookie 失效。
2.持久的Cookie :Cookie 以文本文件的形式保存到硬盘上。
Cookle 的工作流程
Cookie 是基于HTTP协议实现的,工作流程如下。
1.客户端浏览器访问服务器时,服务器通过在HTTP响应中增加SetCookie 字段,将数据信息发送给浏览器
2.浏览器将Cookie 保存在内存中或硬盘上
3.再次请求该服务器时,浏览器通过在HTTP请求消息中增加Cookie 请求头字段,将Cookie 回传给Web服务器服务 器根据Cookie 信息跟踪客户端的状态。

Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。其中

通过 Servlet 设置 Cookie 包括三个步骤:

  1. 创建一个 Cookie 对象([ ] ( ) = , ” / ? @ : ; )这里面红色都不要用
Cookie cookie = new Cookie("key","value");
  1. 设置最大生存周期,默认是-1表示该cookie保留到浏览器关闭为止
//保留时长24h
cookie.setMaxAge(60*60*24);
  1. 发送 Cookie 到 HTTP 响应头
response.addCookie(cookie);

常用方法:

cookie.getName() //获取cookie的名字

cookie.getValue() //获取cookie中保存的值

cookie.setValue() //设置/修改cookie中保存的值(没有setName方法,因为cookie的名字无法修改)

cookie.setMaxAge() //设置cookie的最大生存时间

举例: 添加cookie (一个cookie只能标识一种信息,所以至少要有name和value)

Cookie c = new Cookie("username","ww");// 新建一个Cookie对象
c.setMaxAge(24*60*60);                    // 设置过期时间1天,以秒为单位
response.addCookie(c);                    // 保存cookie到客户端

删除cookie

Cookie cookie = new Cookie("username","lis");// 新建Cookie
cookie.setMaxAge(0);                           // 设置生命周期为0,表示将要删除
response.addCookie(cookie);                    // 执行添加后就从response里删除了

修改cookie

Cookie cookie = new Cookie("username","zs");// 新建Cookie
cookie.setMaxAge(24*60*60);                    // 设置生命周期1day
response.addCookie(cookie);                    // 执行添加后就从response里覆盖修改了

删除和修改 都只需要新建一个value不一样的同名Cookie,但是删除需要多设置一个maxAge。除开新建的Cookie的value、maxAge,其余的都得一样,不然不起作用,不会覆盖。完整的案例可以参考菜鸟教程的。

会话技术 cookie 和 Session(1)

Original: https://www.cnblogs.com/Aons0812/p/16538231.html
Author: Aons谦
Title: 会话技术 cookie 和 Session(1)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644143/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球