cookie
由于HTTP是无状态协议,它不对之前的请求和响应状态进行管理,因此无法通过上一次的状态对本次请求进行处理。
cookie技术则是在这一条件下产生,它通过在请求报文和响应报文中写入cookie来控制用户客户端的状态。
cookie交互(假设开始没有cookie)
1. 客户端向服务器端发送请求报文,服务器端在响应报文中设置Set-Cookie头首部字段,通知客户端保存cookie;
2. 之后客户端向服务器端发送请求报文时,在请求头中添加cookie;
3. 服务器端接接收请求头中的cookie后,检查从那个客户端发送过来,然后对比服务器上的记录,获取之前的状态信息。
cookie格式
1 Set-Cookie:name=cookie名;expires=Sat, 02 May 2009 23:38:25 GMT(有效期);path=PATH(文件路径);domain=域名;secure(https安全访问);
javascript应用
document.cookie既可以设置cookie,也可以获取cookie
1 // 设置当前cookie其中name属性及其值必须时URL编码,获取时用decodeUrlComponent解码 2 document.cookie = encodeUrlComponent('name') + "=" + encodeUrlComponent('myCookie'); 3 4 // 获取当前可用的所有cookie 5 console.log(document.cookie);
cookie局限
1. 浏览器中存放的cookie数量有限。
2. 不适合大量的数据存储,因为cookie放置在请求头中进行传输,影响传输性能。