Cookie初识篇

一、什么是Cookie

  Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于RFC2109和2965都已废弃,最新取代的规范是RFC6265[1]  。(可以叫做浏览器缓存)

  Cookie时间

  Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否是合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态

二、Cookie常见的方式有哪些

  以游览器登入来说,常见的有两种方式可将登入信息存储在Cookie里面

  1)签名Cookie

  通常会存储用户名、用户ID,及用户最后一次成功登入的时间,以及网站觉得有用的其他任务信息,除了用户相关信息外,签名Cookie还包含一个签名,服务器可使用这个签名来验证游览器发送的信息是否经过改动(比如讲Cookie登入的用户名改成其他用户)

  2)令牌Cookie  

  令牌Cookie里面会存储一串随机字节作为令牌,服务器可根据令牌在数据库中查找令牌的拥有者,随时间挪移,新的令牌会取代旧的令牌,Cookie存储的信息会在一定时间内失效

 三、签名Cokie和令牌Cookie区别?

  签名Cookie优点:

  验证Cookie所有相关信息都存在Cookie里面及额外信息

  签名Cookie缺点:

  正确签名很难,很容易忘记对数据库进行签名或忘记对数据的签名,从而造成安全隐患

  令牌签名Cookie优点:

  存储的数据不是太多,因此移动终端和速度较慢的客户端可快速发起请求

  可获取用户登入Cookie相关信息,可迅速获取有用的用户信息,可在短时间内模拟用户多次重复的登入操作

  令牌Cookie缺点:

  因存储的数据较易获取,存在安全隐患

原文地址:https://www.cnblogs.com/lcj0703/p/5750477.html