Cookie 概述

学习笔记-Cookie概述

servlet的两个核心 cookie,session

1、Cookie是什么?Cookie的作用是什么?

本地缓存机制,将页面的会话状态存放在本地保存器(Cookie),当下次访问时这些缓存会跟随请求再次回到页面上,恢复之前的浏览会话状态。

【会话】访问一个页面就是一次聊天,你问我答就像请求和响应,和服务器的一次聊天,这次沟通被称为【会话】,当下次聊天我们还能接着上次的聊天【会话】,这就需要Cookie机制将这这些信息存储到我们的脑子(本地),这就是保存会话状态,下次再见到时,想接着聊天就需要:上次上次你说的那家餐馆,要不今天去试试?(携带Cookie发送请求)

专业说法是保存会话状态,Cookie就是保存会话状态的容器。

- Cookie可以保存会话状态,但是这个会话状态是保留在客户端上的。
- 只要Cookie清楚,或者Cookie失效,这个会话状态就没有了。
- Cookie是保存在浏览器客户端上的
- Cookie可以保存在浏览器缓存中,浏览器关闭Cookie消失
- Cookie也可以保存在客户端硬盘文件中,浏览器关闭Cookie还在,除非Cookie失效
2、Cookie只有在JavaWeb中有吗?
  • Cookie不知在JavaWeb中存在
  • 只要是web开发,只要是B/S架构的系统,只要是基于HTTP协议,就有Cookie的存在
  • Cookie这种机制是HTTP协议规定的,是Http协议中的一个子协议,Http请求或响应中可以携带Cookie
3、 Http请求携带的交互流程

img

用户访问服务器,服务器根据需求创建携带信息Cookie对象:

Cookie cookie = new Cookie(String cookiename,String cookievalue);

服务器将Cookie添加到Response对象中,通过响应发送到客户端浏览器:

response.addCookie(cookie);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jE2kuSo1-1614871462731)(C:\Users\chens\AppData\Roaming\Typora\typora-user-images\image-20210304225646514.png)]

浏览器从响应中解析到set-Cookie,将Cookie存储到本地。

在次浏览该网页时,Cookie会随请求一起发送

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lyVSmmVn-1614871462734)(C:\Users\chens\AppData\Roaming\Typora\typora-user-images\image-20210304230129478.png)]

4、Cookie实现的功能,常见有哪些
  • 保留购物车商品的状态在客户端上

      - 十天内免登录
      ......
    
5、Cookie的创建

​ 在java中Cookie被当作 类来处理,使用new运算符可以创建Cookie对象,而且Cookie有两部分组成
​ 分别是Cookie的name和value,name和value都是字符串类型String

Cookie cookie = new Cookie(String cookiename,String cookievalue);

6、Cookie的属性

1)设置Cookie的保存在本地的时长

​ 默认情况下,没有设置Cookie的有效时长,该Cookie默认被保存在浏览器临时缓存当中,浏览器关闭即Cookie被销毁,
​ 我们可以通过设置Cookie的有效时长,以保证Cookie保存在硬盘中,但这个时长必须时>0的。换句话说,只要设置Cookie的有效时长大于0,
​ 则该Cookie会被保存到客户端硬盘当中,有效时长到期,硬盘中Cookie被销毁

cookie.setMaxAge(60*60);1小时有效(秒为单位)

注意点:
​ cookie有效时长= 0直接被销毁
​ cookie有效时长<0不会被保存
​ cookie有效时长>0存储到硬盘中

2)指定Cookie的路径

​ 可以通过java程序进行设置,保证Cookie和某个特定的路径绑定一起。
​ 假设,执行了这样的路经:

cookie.setPath("/prj-srevlet-19/king");
​ 那么:Cookie将和/prj-srevlet-19/king绑定定一起,只有输入完整路径才会发送Cookie

​ 在浏览器客户端无论是硬盘文件中还是缓存中保存的Cookie,什么时候会再次发送给服务器?

​ 浏览器会不会发送这些Cookie给服务器,和路径有关

​ - 请求路径和Cookie时紧密关联的

​ - 不同的请求路径会发送提交不同的Cooki

​ 默认情况下Cookie和哪些路径绑定一起?
​ http://localhost:8080/prj-servlet-19/getCookieFromServer/a获得的Cookie
​ 会和/getCookieFromServer/路径绑定到一起。也就是说以后只要发送“getCookieFromServer/”及其下面的子路径,Cookie就一定会提交给服务器。

7、浏览器提交Cookie给服务器,服务器怎么接收Cookie?

​ Cookie[] c = req.getCookie();
Server/”及其下面的子路径,Cookie就一定会提交给服务器。

7、浏览器提交Cookie给服务器,服务器怎么接收Cookie?

​ Cookie[] c = req.getCookie();
​ 遍历Cookie[]即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值