热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

本地存储关于cookie

最近面试的过程中,碰到了一些关于本地存储的问题,主题也不知道写什么好,就随便写个本地存储。我问了许多的前端,使用Cookie会有什么弊端,很多都是回答说不安全之类的,不安全那是肯定的,不过只要服务端在

最近面试的过程中,碰到了一些关于本地存储的问题,主题也不知道写什么好,就随便写个本地存储。

我问了许多的前端,使用COOKIE会有什么弊端,很多都是回答说不安全之类的,不安全那是肯定的,不过只要服务端在使用COOKIE的时候适当的加个密就可以防止很多安全的问题了,这不是我们前端主要关心的问题。在日常的开发过程中,本人碰到了以下问题:

1. 存储大小问题
2. 在请求过程中会带过去服务端,这样如果COOKIE过大会影响发包。

 

首先我们看看第一点,一些权威机构对COOKIE存放大小是怎么说的
一个域名的每个 COOKIE 被限制为 4,096 字节。这个总数可以 4 千字节 (KB) 的一个名称-值对的形式存在,或作为多达 20 名称-值对的总的 4 KB。如果计算机没有足够的空间存储该 COOKIE,该 COOKIE 将被丢弃。

就是说单个值不得超过4K, 可以多达20个。这样的存储量基本是够用了,不过对于服务器端如果也使用的话就很难说了,因为这里就不单单是前端要用了,还多了一方,这样的数据是不可靠的,你永远无法知道是不是你自己把他给堵满了,或者把你的改了。对于团队开发,使用时有这个必要看看COOKIE使用的情况。

另外还有一点就是,如果你用一些如Firebug的调试软件抓一下头部你会发现,在网站发送请求(Post)的时候会把COOKIE也带了过去。这样一看,如果你单COOKIE有1KB 共有 5 个就 5 KB,  按1M的小水管来算,上传最大就只有50K/S, 就上传就花了 0.1 秒,等服务端返回加处理这样一个过程花的时间就长了许多。对于大访问量的站就更不用说了,一个用户单一个请求上传就花了5KB, 1024个用户就 5M,1024W就是5M*10000,这是多么大的上传宽带开销。

针对以上这两个问题本人觉得可以用以下的解决方案.

支持 localstorage 的浏览器使用 localstorage , 这个本地存储的对象ie8以上的都支持了,Firefox 、Chrome就更不用说了。

对于一些低级一点的浏览器如IE6 IE7 可以用Flash的SharedObject模拟一个本地存储的对象。

这提到的这两个东西都是服务器端不会用到的,所以也不用担心数据被服务端的人给改了。

可以对localstorage  和 Flash的存储进行一个封装,让它使用方便点就可以了。具体怎么样去实现这里就不多说了,提供一些参考资料吧。

 

http://blog.csdn.net/ld_flex/article/details/6002774

http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html


推荐阅读
author-avatar
fspygh
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有