关于Cookie的问题总结

能够存储的数据结构到底有哪些?

浏览器端:cookie,WebStorage(localStorage,sessionStorage),userData,indexedDB

服务器端 : session

什么是cookie?它存放在哪?

维基上给出的解释是:Cookie(复数形态Cookies),又称为“小甜饼”。类型为“小型文本文件”,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密

其他得解释大同小异,cookie 就是浏览器储存在用户电脑上的一小段文本文件。一个 Web 页面或服务器告知浏览器按照一定规范来储存这些信息,并在随后的请求中将这些信息发送至服务器,Web 服务器就可以使用这些信息来识别不同的用户。大多数需要登录的网站在用户验证成功之后都会设置一个 cookie,只要这个 cookie 存在并可以,用户就可以自由浏览这个网站的任意页面。再次说明,cookie 只包含数据,就其本身而言并不有害

由上所述,Cookie应该是存放在客户端的

cookie和session的关系?

  • cookie是客户端存放着,是为了方便记录特定用户一些特定操作而存在的;而session是在服务器端的,是一种保存上下文机制,针对的每一个用户
  • session中保存的是对象,cookie中保存的是字符串。 
  • session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
  • session需要借助cookie才能正常工作,就是说session是依托于cookie的

其他详细的差异与实现,文章结尾由参考的完章,里面有详细的解释

localstorge和sessionstorge的关系?

localStorage 是 HTML5 标准中新加入的技术,它并不是什么划时代的新东西。早在 IE 6 时代,就有一个叫 userData 的东西用于本地存储,而当时考虑到浏览器兼容性,更通用的方案是使用 Flash。localStorage 的数据需要手动清除

sessionStorage 与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同。做过后端开发的同学应该知道 Session 这个词的意思,直译过来是“会话”。而 sessionStorage 是一个前端的概念,它只是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。当页面关闭后或者关闭浏览器后,sessionStorage 中的数据就会被清空。

两者分关系就是他们都是浏览器上的存储方式,你可以直接去调用他们,还有一点就是它们存储的都是字符串,不可以存储json对象

userData

IE浏览器可以使用userData来存储数据,容量可达到640K,这种方案是很可靠的,不需要安装额外的插件。缺点:它仅在IE下有效。

indexedDB

IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。IndexedDB 允许储存大量数据,提供查找接口,还能建立索引。这些都是 LocalStorage 所不具备的。就数据库类型而言,IndexedDB 不属于关系型数据库(不支持 SQL 查询语句),更接近 NoSQL 数据库。

三者的异同?

特性CookielocalStoragesessionStorage
数据的生命期一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效除非被清除,否则永久保存仅在当前会话下有效,关闭页面或浏览器后被清除
存放数据大小4K左右一般为5MB
与服务器端通信每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题仅在客户端(即浏览器)中保存,不参与和服务器的通信
易用性需要程序员自己封装,源生的Cookie接口不友好源生接口可以接受,亦可再次封装来对Object和Array有更好的支持

  cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
  cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递。
  sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

cookie的安全性问题?

cookie的最大安全问题就是XSS攻击 ,主要方式就是汪接口里注入js代码,防范的方法基本上还是网站开发人员的事,一般的方法就是提高验证的可靠性,设置cookie的http只读属性等,具体的xss盗取Cooke的过程可以参考本文底部的引用文章;

参考文献:

cookie相关:http://bubkoo.com/2014/04/21/http-cookies-explained/

cookie与session对比相关:https://juejin.im/entry/5766c29d6be3ff006a31b84e

http://www.cnblogs.com/xulb597/archive/2012/07/02/2573252.html

localStorage文章:https://jerryzou.com/posts/cookie-and-web-storage/

Xss获取cookie:https://blog.csdn.net/qq_27552077/article/details/61671671

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值