会话技术 cookie 和 Session(1)

网友投稿 733 2022-10-25

会话技术 cookie 和 Session(1)

会话技术 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 包括三个步骤:

创建一个 Cookie 对象([ ] ( ) = , " / ? @ : ;)这里面红色都不要用

Cookie cookie = new Cookie("key","value");

设置最大生存周期,默认是-1表示该cookie保留到浏览器关闭为止

//保留时长24h

cookie.setMaxAge(60*60*24);

发送 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,其余的都得一样,不然不起作用,不会覆盖。完整的案例可以参考菜鸟教程的。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:darknet深度学习框架源码分析:详细中文注释,涵盖框架原理与实现语法分析
下一篇:微小的C库,利用未定义的行为来实现泛型编程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~