cookie 探秘

一、什么是cookie

           cookie 用来跟踪用户的会话,与服务器交互,作为http规范的一部分存在。

           cookie由w3c组织提出,在客户端记录信息来确定用户身份。session 则是在服务器端记录用户信息。为了实现浏览器多个标签页之间的通信,就用local storage 或cookies等本地存储方式。

           一个用户的所有请求都属于同一个会话。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客 户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务 器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

 

二、Cookie的优点:

cookie具有极高的扩展性和可用性。具体体现在下面几个方面:

可控制保存在cookieseesion 对象的大小;可通过加密和安全传输技术,减少cookie被破解的可能;在cookie中存放不敏感的数据时,不用担心被盗造成的损失;控制cookie的生命周期,不会永远有效,这样偷盗者旧会拿到过期 cookie。

三、Cookie的缺点:

  1. Cookie不可以跨域调用;
  2. 每次请求一个新的页面,cookie都会被发送过去,无形中浪费了带宽;
  3. 有数量和长度限制,每个特定的域名下最多生成20cookie,而且cookie 的最大字节为4096,考虑到兼容性问题,不超过4095字节;
  4. 在安全方面,如果cooki而被人拦截,拦截者可以取得所有的session信息;有的状态不可能保存在客户端,比如为了防止重复提交表单,计数器会放在服务器上,如果把它放在客户端则没有任何作用。

:(因为cookie不可以实现跨域调用,为了解决跨域问题,可以有以下方法:

  1. 利用jsonp,其原理是动态插入scipt标签
  2. Document.domain+iframe
  3. Window.namewindow.postMessage
  4. 在服务器上设置代理页面

关于webstorage:

上面提到cookie有存储容量的限制,web storage为了更大存储容量设计的,仅仅是为了在本地存储数据而生。Html 5中的web storage有两种存储方式:session storage local storage

关于session storage 和 local storage:

Session storage 仅仅是会话级别的存储,用于本地存储一个会话中的数据,这些数据只有在同一个会话中的页面才能访问,会话结束后数据也随之销毁。

Local storage 用于持久化的本地存储,如果不是主动删除,会话永远不会过期。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值