关于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 允许储存⼤量数据,提供查接⼝,还能建⽴索引。这些都是LocalStorage 所不具备的。就数据库类型⽽⾔,IndexedDB 不属于关系型数据库(不⽀持 SQL 查询语句),更接近 NoSQL 数据库。
三者的异同?
特性Cookie localStorage sessionStorage
数据的⽣命期⼀般由服务器⽣成,可设置失效时间。如果在浏览器端⽣成Cookie,默认
是关闭浏览器后失效
除⾮被清除,否则永
久保存
仅在当前会话下有效,关闭页⾯或浏览
器后被清除
存放数据⼤
4K左右⼀般为5MB
与服务器端
通信
每次都会携带在HTTP头中,如果使⽤cookie保存过多数据会带来性能问题仅在客户端(即浏览器)中保存,不参与和服务器的通信
sessionstorage和localstorage
易⽤性需要程序员⾃⼰封装,源⽣的Cookie接⼝不友好源⽣接⼝可以接受,亦可再次封装来对Object和Array有更好的⽀持
特性Cookie localStorage sessionStorage
cookie是⽹站为了标⽰⽤户⾝份⽽储存在⽤户本地终端(Client Side)上的数据(通常经过加密)。
cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递。
sessionStorage和localStorage不会⾃动把数据发给服务器,仅在本地保存。
cookie的安全性问题?
cookie的最⼤安全问题就是 ,主要⽅式就是汪接⼝⾥注⼊js代码,防范的⽅法基本上还是⽹站开发⼈员的事,⼀般的⽅法就是提⾼验证的可靠性,设置cookie的http只读属性等,具体的xss盗取Cooke的过程可以参考本⽂底部的引⽤⽂章;
参考⽂献:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。