当前位置: 代码迷 >> 综合 >> cookie、session、sessionStorage、和localStorage
  详细解决方案

cookie、session、sessionStorage、和localStorage

热度:62   发布时间:2024-01-08 22:45:33.0

一、cookie和session

保持状态:cookie保存在浏览器端,session保存在服务器端

 2、使用方式:

(1)cookie机制:如果不设置过期时间,cookie被保存在内存中,浏览器关闭而结束,这种cookie简称会话cookie。如果设置了cookie的过期时间,cookie被保存在硬盘中,关闭浏览器后,cookie数据仍然存在,直到过期时间结束才消失

Cookie是服务器发给客户端的特殊信息,cookie是以文本的方式保存在客户端,每次请求时都带上它

(2)Session用于保存每个用户的专用信息,变量的值保存在服务器端,通过SessionID来区分不同的客户

3、存储内容:cookie只能保存字符串类型,以文本的方式;session通过类似与Hashtable的数据结构来保存,能支持任何类型的对象(session中可含有多个对象)

4、存储的大小:cookie:单个cookie保存的数据不能超过4kb;session大小没有限制。5、5、安全性:cookie:针对cookie所存在的攻击:Cookie欺骗,Cookie截获;session的安全性大于cookie。

 应用场景:

cookie:(1)判断用户是否登陆过网站,以便下次登录时能够实现自动登录(或者记住密码)。如果我们删除cookie,则每次登录必须从新填写登录的相关信息。

    (2)保存上次登录的时间等信息。

    (3)保存上次查看的页面

    (4)浏览计数

session:Session用于保存每个用户的专用信息,变量的值保存在服务器端,通过SessionID来区分不同的客户。

  (1)网上商城中的购物车

  (2)保存用户登录信息

  (3)将某些数据放入session中,供同一用户的不同页面使用

  (4)防止用户非法登录

缺点:cookie:(1)大小受限

        (2)用户可以操作(禁用)cookie,使功能受限

        (3)安全性较低

        (4)有些状态不可能保存在客户端。

        (5)每次访问都要传送cookie给服务器,浪费带宽。

        (6)cookie数据有路径(path)的概念,可以限制cookie只属于某个路径下。

session:(1)Session保存的东西越多,就越占用服务器内存,对于用户在线人数较多的网站,服务器的内存压力会比较大。

        (2)依赖于cookie(sessionID保存在cookie),如果禁用cookie,则要使用URL重写,不安全

        (3)创建Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理,所以,过度使用session变量将会导致代码不可读而且不好维护。

 二、webstorage(sessionStorage、localStorage)

webstorage分为两种:sessionStorage、localStorage

1.sessionStorage:将数据保存在session对象中。所谓session,是指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。session对象可以用来保存在这段时间内所要求保存的任何数据。 

2.localStorage:将数据保存在客户端本地的硬件设备(通常指硬盘,也可以是其他硬件设备)中,即使浏览器被关闭了,该数据仍然存在,下次打开浏览器访问网站时仍然可以继续使用。 

 这两者的区别在于,sessionStorage为临时保存,而localStorage为永久保存。

localStorage(本地存储)和sessionStorage(会话存储)其他区别:

1、生命周期:localStorage的生命周期是永久的,关闭页面或浏览器之后l数据也不会消失。localStorage除非主动删除数据,否则数据永远不会消失。

        sessionStorage的生命周期是在仅在当前会话下有效。sessionStorage引入了一个“浏览器窗口”的概念,sessionStorage是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是sessionStorage在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage也是不一样的。

2、存储大小:localStorage和sessionStorage的存储数据大小一般都是:5MB

3、存储位置:localStorage和sessionStorage都保存在客户端,不与服务器进行交互通信。

4、存储内容类型:localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理

5、获取方式:localStorage:window.localStorage;;sessionStorage:window.sessionStorage;。

6、应用场景:localStoragese:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据。sessionStorage:敏感账号一次性登录

(嘿嘿一个网图,不过还行) 

 

 

  相关解决方案