cookie是什么呢?
不不不,我说的cookie是这个
下面就详细介绍下这个web世界中不可缺少的一个元素
1. cookie的产生
cookie是什么呢?wikipedia上面的定义这么写:
Cookie(复数形态Cookies),中文名称为“小型文本文件”或“小甜饼”[1],指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。定义于RFC2109。是网景公司的前雇员卢·蒙特利在1993年3月的发明[2]。
从这段话可以知道cookie 的一个最大的特征就是存储在 客户端
而它的主要作用是 身份识别
对HTTP协议有一定了解的朋友们应该知道,HTTP协议是一种 无状态 协议,何谓无状态?就是这一次请求,和上一次,下一次请求之间相互完全独立。
现在的很多网站都需要有登录功能,如果单纯用HTTP来识别,由于其无状态的性质,不能说这一个请求进行过身份认证了,下一条就不进行了。因此,每一次请求都要进行一次身份认证,而每加载一个页面,就会有十几甚至几十条的http请求,反复的进行身份验证对于资源的消耗十分的大,因此产生了cookie来解决这个问题
2.cookie的作用方法
- 第一步 完成(如用户名密码方式的)身份验证,服务端在给客户端的response中加入设置cookie的信息
- 第二步 客户端浏览器把cookie储存在本地
- 第三步 客户端在每次发送请求的时候,将cookie加在请求的header中
- 第四步 (有需要时)重复第三步,知道浏览器将cookie清除或者cookie自动过期
3.cookie的设置与传输
设置
cookie的设置,是通过response中的一个名为set-cookie的header实现的,传输的方式是map (key-value pair键值对,也称作关联数组,哈希表)
cookie的传递,是每次浏览器发到服务端的request的header中,也是以键值方式传递
4.用cookie实现持续的身份验证
cookie的一大作用就是用来实现持续的身份验证,登录一次,保持一段时间的在线状态。
实现的方法是服务器端使用session用户对应的session变量存储在服务端,将一个与,而将session的id,也是对应唯一的身份识别码,存储在cookie中,每一个sessionid对应唯一的登录用户。