-
-
Save jikeytang/05b416d2a48d8cefc5ea to your computer and use it in GitHub Desktop.
请阐述以下session, cookies, userdata,sessionStorage 和 localStorage 的区别? | |
PS: | |
1. 回复时注意加上下面这句话,才会有语法高亮或格式缩进。 | |
```html | |
// you code | |
``` | |
2. 也可以粘贴jsfiddle地址,比如: | |
http://jsfiddle.net/jikeytang/Rmt8M/ | |
评论支持markdown语法。 | |
[http://jsfiddle.net/jikeytang/Rmt8M/](http://jsfiddle.net/jikeytang/Rmt8M/) |
之前总结过一点关于cookie的基础知识,随手贴出来,请高手指点:
①关于cookie;
Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。
②cookie能做什么;
服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。
③cookie很完美吗?
有利也有弊,cookie也有一些众所周知的缺点。
其一,cookie只能存储少量数据,,一般来说,设置大约4KB的数据,这意味着它不能接受文件或邮件那样的大数据;
其二,只要有请求涉及cookie,cookie就要在服务器和浏览器之间来回传送。也就是说,cookie数据在网络上是可见的,这些数据在不加密的情况下会有安全隐患。同时,无论加载哪个相关的URL,cookie中的数据都会消耗网络带宽。
userdata:低版本IE下的本地存储实现,将数据以xml文件的形式存储在用户电脑的userData目录下,存储容量约单文件128KB,单域1024KB
sessionStorage:HTML5中的新功能,用于在本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。
localStorage:HTML5中的新功能,实现本地存储数据,除非手动删除,否则存储时长为永久,存储容量为5MB
userdata和localStorage结合,可以实现兼容的本地(离线)存储方案。详见:https://github.com/luics/storage/wiki/Storage#%E5%AD%98%E5%82%A8%E4%B8%8A%E9%99%90
新人会的不多 阐述下session 和 cookies:
cookies机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookies机制来达到保存标识的目的。