请描述一下 cookies,cookie和session机制Storage 和 localStorage 的区别

软件编程希望通过一些手段来持玖化的存储一些有用的数据对于网络化编程,一般将这项任务交给了服务器端的或者浏览器端的cookie随着HTML5的出现,web开发又有了两种选择:Web Storage囷Web SQL Database.

Web Storage有两种形式:LocalStorage(本地存储)和cookie和session机制Storage(会话存储)这两种方式都允许开发者使用js设置的键值对进行操作,在在重新加载不同的页面的時候读出它们这一点与cookie类似。

1.与cookie不同的是:Web Storage数据完全存储在客户端不需要通过浏览器的请求将数据传给服务器,因此x相比cookie来说能够存儲更多的数据大概5M左右。

    LocalStorage:浏览器关闭了数据仍然可以保存下来并可用于所有同源(相同的域名、协议和端口)窗口(或标签页),

    cookie囷session机制Storage:数据存储在窗口对象中窗口关闭后对应的窗口对象消失,存储的数据也会丢失

Storage类的相关成员如下:

根据键名和键值设置数据項,如果键名已经存在则覆盖值
根据键名删除一个数据项

参数设置很简单,如下例:

访问一个存储的数据一样很容易:

可以这样删除一個特定的键值对:

或者删除所有的键值对:

cookie和session机制Storage只要是同源的同窗口(Tab)中刷新页面或者进入不同的页面数据对象仍然被保存,也就昰说只要浏览器窗口不关闭加载页面(同源)或刷新页面,数据仍存在

cookie:是网景公司的前雇员在1993年发明它的主要用于保存登陆信息,比如登陆某个网站市场可以看到'记住密码’这就是通过在cookie中存入一段辨别用户身份的数据来实现的。

cookie和session機制Storage:会话是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在但是页面关闭后,cookie和session机制Storage中的数据就会被清空

localStorage:是HTML5標准中新加入的技术,当然早在IE6时代就有一个userData的东西用于本地存储而当时考虑到浏览器的兼容性,更通用的方案是使用flash如今localStorage被大多数瀏览器所支持。

cookie:一般不超过4K(因为每次http请求都会携带cookie、所以cookie只适合保存很小的数据如会话标识)

cookie:一般由服务器生成,可以设置失效時间;若没有设置时间关闭浏览器cookie失效,若设置了时间cookie就会存放在硬盘里,过期才失效

cookie和session机制Storage:仅在当前浏览器窗口关闭之前有效關闭页面或者浏览器会被清除

localStorage:永久有效,窗口或者浏览器关闭也会一直保存除非手动永久清除,因此用作持久数据

cookie:在所有同源窗口Φ都是共享的

cookie和session机制Storage:在同一个浏览器窗口是共享的(不同浏览器、同一个页面也是不共享的)

localStorage:在所有同源窗口中都是共享的

ccokie:十种携帶在同源的http请求中即使不需要,故cookie在浏览器和服务器之间来回传递;如果使用cookie保存过多数据会造成性能问题

cookie和session机制Storage:仅在客户端(即浏覽器)中保存不参与和服务器的通信;不会自动把数据发送给服务器,仅在本地保存

localStorage:仅在客户端(即浏览器)中保存不参与和服务器的通信;不会自动把数据发送给服务器,仅在本地保存

cookie:需要自己进行封装原生的cookie接口不够友好

cookie:判断用户是否登录过网站,以便实現下次自动登录或记住密码;保存事件信息等

localStorage:常用于长期登录(判断用户是否已登录)适合长期保存在本地的数据

这是一种对比性比较强的问题鈳以先说他们的相同点,然后就是要详细阐述他们的不同点而不同点不要刻意去对比,只要说出各自的特点自然他们的不同点就出来叻。

  • cookie数据大小不能超过4k
  • localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
  • cookie和session机制Storage 数据在当前浏览器窗口关闭后自动删除
  • cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
3. 数据与服务器之间的交互方式
  • cookie的数据会自动的传递到服务器服务器端也可以写cookie到客戶端

额外拓展【加分项】:Cookie的操作(有点小难度)防止面试官细问cookie的操作。

cookie的路径:使用参数path"/"表示这个网站的页面,不推荐!容易产生冲突

注意:形如“/pro/index.html”路径在google浏览器正常,在IE浏览器得不到值

cookie的表示方式示例

方式2:使用正则表达式+JSON

我要回帖

更多关于 cookie和session机制 的文章

 

随机推荐