主题
Cookie 和 Session
区别
- cookie数据存放在客户的浏览器上,session数据放在服务器上
- cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗
- 考虑到安全应当使用session
- session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
- 考虑到减轻服务器性能方面,应当使用cookie
- cookie有大小限制
Cookie 理解
产生原因:HTTP 是无状态协议,但现代有大量需要服务器辨别客户端的场景
运行理解:
- 服务器在响应报文设置 Set-Cookie,通知客户端保存 Cookie
- 下次客户端再往该服务器 发送请求时,客户端会自动在请求报文中加入 Cookie 值
- 服务器可以根据请求报文的 Cookie 中的自定义的唯一表示标识辨别客户端身份
列子:
没有 Cookie 信息状态下的请求,服务器为它生成一个 sid,并存入 Cookie 中返回
请求报文(没有 Cookie 信息的状态)
javascriptGET /reader/ HTTP/1.1 Host: hackr.jp
响应报文(服务器端生成 Cookie 信息)
javascriptHTTP/1.1 200 OK Date: Thu, 12 Jul 2012 07:12:20 GMT Server: Apache <Set-Cookie: sid=1342077140226724; path=/; expires=Wed, 10-Oct-12 07:12:20 GMT> Content-Type: text/plain; charset=UTF-8
第 2 次以后(存有 Cookie 信息状态)的请求
请求报文(自动发送保存着的 Cookie 信息)
javascriptGET /image/ HTTP/1.1 Host: hackr.jp Cookie: sid=1342077140226724