Cookie入门

先引入概念

cookie是什么:

cookie就是通过“set-cookie”为响应头和“cookie”为请求头将会话中产生的数据保存在客户端的一种机制,是客户端技术。

cookie的工作原理:

简单来说,客户端第一次向服务器发送请求,服务器保存所需的数据,通过创建一个cookie,以“set-cookie”为响应头发送给浏览器,浏览器会以cookie形式保存在浏览器内部。当客户端再次访问服务器时,每次都会带有“cookie”请求头(里面带有cookie保存的信息),服务器能获取到上次会话保存在浏览器的cookie信息。

cookie的生命周期:

在服务器对创建的cookie,默认不做任何设置情况下,浏览器保存的cookie会存入“浏览器内存中”,所以,当我们关掉浏览器后,浏览器中的cookie,会被释放掉。所以我们再打开浏览器访问服务器时,服务器拿不到原先的cookie信息,把浏览器当作是第一次访问。

同时,这样之前服务器给这个浏览器“专属创建服务”的Session实例也就找不到了,因为服务器是根据之前保存在浏览器cookie来找到服务器中与该浏览器所对应的Session是哪一个的。(session是什么,可看下一篇)

怎么创建一个cookie:

Cookie cookie = new Cookie("time","");
                response.addCookie(cookie);

更改cookie的生命周期

在创建cookie后,通过cookie.setMaxAge(60),就可以让存活60秒。与默认不做操作的区别在于(重点):当对cookie设置了存活时间后,cookie会被浏览器存入硬盘中,所以,关闭浏览器后,cookie依然能存活。代码如下:

Cookie cookie = new Cookie("time","");
                 // >>设置Cookie的存活时间(1小时,单位是秒)
                cookie.setMaxAge(60 * 60);
                response.addCookie(cookie);

怎么删除cookie

Cookie cookie = new Cookie("time","");
 // >>设置Cookie的存活时间0秒(不存活)
 cookie.setMaxAge(0);

response.addCookie(cookie);

Cookie的存在意义


由于Http协议是无状态的,就是没有记忆,服务端无法分清哪些请求是同一个客户(未登录)的发的。通俗的说,以前的网站就是些纯展示的页面,而且是一请求就是整个页面的静态刷新。在后面有了动态加载页面技术后,无记忆状态已满足不了当时人们的需求,如添加购物车,在未登录时,我多次添加商品到购物车中,服务端却不知道是不是同一个人添加的,因为客户很多,没有记忆识别,无法分清归纳商品到客户自己的购物车。

所以,Cookie与Session就是为了解决Http协议无状态而创造出来的。当客户端第一次请求服务端时,服务端会创建一个对这个客户端的唯一标识,并以cookie文件的形式保存在客户端。这样后面客户端的请求,都会带有cookie的标识,服务端自动检测到cookie后,就知道是之前的哪一个客户端请求的了。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值