保存会话数据的两种技术之一Cookie

1. 出现背景

     在维基百科中讲到:Cookie(复数形态Cookies),中文名称为小型文本文件或小甜饼,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。定义于RFC2109。为网景公司的前雇员Lou Montulli在1993年3月所发明。那么为什么要创造一个cookie来保存用户本地终端(Client Side)上的数据呢?

    Web开发是基于HTTP协议的,但是HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么。 

    Cookie就是绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

2.Cookies特点

1.cookie中保存的数据是存放在客户端的

2.cookie中保存的数据只能是文本内容(即服务器向客户端写的内容只能是文本)

3.存活期是浏览器窗口从打开到关闭,当打开的窗口一关闭,cookies消失。

3.Cookies操作类

         我们都知道web开发中客户端和服务端进行数据交互是使用servlet实现的,所以cookies的设置是在servlet中的。

所以在Servlet API 中提供了一个javax.servlet.http.Cookie类(Javax是Java的API(Application Programming Interface)包;javax的x是extension的意思,也就是扩展包来封装Cookie信息。它包含有生成Cookie信息和提取Cookie信息的方法。

    使用这个类来设置Cookies完成从服务器向客户端写入信息,保存在客户端。其中response接口也中定义了一个addCookie方法,它用于在其响应头中增加一个相应的Set-Cookie头字段。同样,request接口中也定义了一个getCookies方法,它用于获取客户端提交的Cookie。

4.cookie应用

  举一个例子,Cookie一个典型的应用是当登录一个网站时,比如我们登陆QQ,我们要输入用户名和密码,并且用户可以勾选“下次自动登录”。如果勾选了,那么下次登陆QQ时,用户会发现没输入用户名和密码就已经登录了。这正是因为前一次登录时,服务器发送了包含登录凭据的Cookie到用户的硬盘上,将这些信息保存在了用户硬盘上;第二次登录时,(如果该Cookie尚未到期)浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。

         

5.总结

      Cookie是客户端技术,服务端将每个用户的数据以cookies的形式发给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去从而在服务器端访问到属于用户自己的数据了。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值