一、什么是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缺点:

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

最新文章

  1. 阶段一:通过网络请求,获得并解析JSON数据(天气应用)
  2. js学习心得之思维逻辑与对象上下文环境(一)
  3. a:link a:visited a:hover a:active四种伪类选择器的区别
  4. 使用注解方式定义和配置aop
  5. C# 线程基础
  6. QT5-控件-QTimeEdit和QTime
  7. JWPlayer 使用小记
  8. CNN中的卷积核及TensorFlow中卷积的各种实现
  9. (ajax)——jquery用法
  10. java 里面保留字volatile及其与synchronized的区别
  11. SDL2源代码分析8:视频显示总结
  12. flutter 自定义主题切换
  13. Python学习笔记(二)
  14. python正则表达式二[转]
  15. k8s之安装docker-ce17.06
  16. oracle学习操作(1)
  17. java基础(三) 加强型for循环与Iterator
  18. <编程之美>经典面试题:求二叉树节点的最大距离(我的解法,最容易理解的版本?)
  19. RHEL6安装Oracle 11g R2
  20. Web Api 内部数据思考 和 利用http缓存优化 Api

热门文章

  1. STL中的查找算法
  2. 生物信息大数据&数据库(NCBI、EBI、UCSC、TCGA)
  3. Easy UI
  4. python新技能get——看!源!码!
  5. iOS基础篇(十七)——UIGestureRecognizer用法
  6. iOS开发拓展篇—UIDynamic(简单介绍)
  7. StringUtils工具类的常用方法
  8. linux命令每日一练习-rmdir mv
  9. Qt之WebKit学习之绘图
  10. 在你决定从事iOS开发前需要清楚的几个问题