javascript存储 --- session cookie localStorage sessionStorage

逻辑探幽人
• 阅读 3139

session, cookie, sessionStorage, localStorage

浏览器的缓存机制提供了可以将用户数据存储在客户端,可以利用 cookie, session 等跟服务端进行数据交互
  1. cookie 俗称为甜点 是作为缓存数据存储与客户端(浏览器端),
    Cookie 是服务器发给客户端的特殊信息,cookie是以文本的方式保存在客户端,每次请求时都带上它, 服务器首次在响应头信息中将cookie发送给客户端, 此后客户端每次访问服务器的时候都会带上这个 cookie;
    曾经有一个比较有意思的例子可以很好的解释cookie, cookie 就好比你去电视机专卖店买了一部电视机, 当每次坏了的时候 你必须带上你的电视机去专卖店修理, 因为专卖店指挥认识特有标志的电视机而不会认识人
  2. session
    cookie 可以认为是特殊的 cookie , 我们可以接着上一个例子, 上个例子专卖店只认特定的电视机, 而session就相当于你在专卖店注册了一张会员卡, 当你去专卖店的时候专卖店看到你手上的会员卡, 根据会员卡信息来确定顾客信息身份,
cookie和session最大的区别就是 cookie 的数据信息存储在客户端, 每次访问服务器客户端都会把信息发送给服务器来完成验证,浪费带宽, 而 session 则是把数据信息存储在服务器端, 每次访问服务器客户端指挥发送给服务器一个简单的标志信息, 服务器根据这个标志信息完成验证, 这样也就更加安全一些.
当然他们各自也有一定的优缺点

cook vs session

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

    (1)大小受限
    (2)用户可以操作(禁用)cookie,使功能受限
    (3)安全性较低
    (4)有些状态不可能保存在客户端。
    (5)每次访问都要传送cookie给服务器,浪费带宽。
    (6)cookie数据有路径(path)的概念,可以限制cookie只属于某个路径下。

    session:

    (1)Session保存的东西越多,就越占用服务器内存,对于用户在线人数较多的网站,服务器的内存压力会比较大。
    (2)依赖于cookie(sessionID保存在cookie),如果禁用cookie,则要使用URL重写,不安全
    (3)创建Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理,所以,过度使用session变量将会导致代码不可读而且不好维护。

sessionStorage VS localStorage

自从HTML 5 标准出现之后,本地化存储一度成为热点。在HTML 5 最开始时,本地存储有两种方式:web Storage,web SQL。由于web SQL的实现是基于SQLite,更倾向于DataBase方向,且W3C官方在2011年11月宣布不在维护web SQL规范,因此,目前我们常讲的HTML 5本地存储,多指的是web Storage。
  1. web Storage
    web Storage 是HTML 5引入的一个重要的功能,在前端开发的过程中会经常用到,它可以在客户端本地存储数据,类似cookie,但它只是在本地存储, 两者都是仅在客户端(即浏览器)中保存,不参与和服务器的通信,其功能却比cookie强大的多。cookie的大小只有4Kb左右(浏览器不同,大小也不同),而web Storage的大小有5MB。其API提供的方法有以下几种:
    setItem (key, value) ——  保存数据,以键值对的方式储存信息。
    getItem (key) ——  获取数据,将键值传入,即可获取到对应的value值。
    removeItem (key) ——  删除单个数据,根据键值移除对应的信息。
    clear () ——  删除所有的数据
    key (index) —— 获取某个索引的key
作用域不同,
sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面, 其只在
同源界面保存一次;localStorage 在所有同源窗口中都是共享的;

数据有效期不同,
sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;
localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据

也就是说 sessionStorage是页面级别的,比较适合但页面应用, 而localStorage是浏览器级别的

点赞
收藏
评论区
推荐文章
莎利亚 莎利亚
4年前
PHP Cookie与Session的使用与区别
Cookie与SessionCookie和session是目前使用的两种存储机制。cookie是从一个WEB页到下一个WEB页面的数据传送方法,cookie存储在客户端;Session是让数据在页面中持续有效的一个传递方法,session存储在服务器端。掌握了cookie与session这两个技术,在WEB网站页面间信息传递的安全性是
菜园前端 菜园前端
2年前
考考你浏览器缓存有哪些,区别是什么?
原文链接:浏览器缓存主要包含cookie、在HTML5新标准中新增了本地存储localStorage和会话存储sessionStorage。cookie什么是cookie?cookie是一些缓存数据,主要存储在你的电脑中。当你发起网络请求时也会携带当前域名
喷火龙 喷火龙
4年前
go语言web开发框架_Iris框架讲解(六):Session的使用和控制
在实际的项目开发中,我们会经常有业务场景使用到Session功能。在iris框架中,也为我们提供了方便使用,功能齐全的Session模块。Session模块的源码目录为kataras/iris/sessions包。Session与Cookie的区别在学习web开发过程中,我们总会和session和cookie打交道。本节课我们学习sesion相关的
喷火龙 喷火龙
4年前
cookie和session的详解与区别
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1 C
Wesley13 Wesley13
3年前
Java认证:对session和cookie的一些理解
Java认证:对session和cookie的一些理解博客分类:java这篇文章虽然说的是JAVA中的session和cookie的使用,但是对于其他语言也是适用的。一、cookie机制和session机制的区别具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看
Stella981 Stella981
3年前
Django中的session的使用
一、Session的概念cookie是在浏览器端保存键值对数据,而session是在服务器端保存键值对数据session的使用依赖cookie:在使用Session后,会在Cookie中存储一个sessionid的数据,每次请求时浏览器都会将这个数据发给服务器,服务器在接收到sess
Wesley13 Wesley13
3年前
thinkphp缓存使用
thinkphp缓存使用一、总结1、这里的缓存不是指的缓存的页面,而是cache,如果你缓存了一个数组,那么你就可以取出这个数组里面的数据进行使用,用法性质和cookie和session有点像2、缓存的数据可以在thinkphp的runtime下的cache文件夹下面找到3、用法:可以用Cache类也可以用
Stella981 Stella981
3年前
Spring Boot + Redis 处理 Session 共享
!(https://oscimg.oschina.net/oscnet/1c33266bc92f4817b73ae60421658769.png)背景Web开发中,通过Session在服务端记录用户状态是很常见的操作。对于Web开发中Session、Cookie等概念请参考《Session机制详解》
Stella981 Stella981
3年前
IE下Userdata本地化存储
这两天看了下Discuzx2发帖的实时保存机制,涉及到本地化存储,所以上网查了下,Firefox等支持HTML5的浏览器使用window.localStorage或window.sessionStorage存储,比较简单,所以我特别关注了一下IE下的本地化存储,以下是在网上查找的资料,作为笔记。 在InternetExplorer5中,Mi
Stella981 Stella981
3年前
Django组件——cookie与session
Django组件——cookie与session<fontcolor00bff一、会话跟踪技术</font<fontcolorff7f501、什么是会话跟踪技术</font先了解一下什么是会话。可以把
3A网络 3A网络
2年前
一文读懂浏览器存储与缓存机制
一文读懂浏览器存储与缓存机制浏览器存储CookieCookie是HTTP协议的一种无状态协议。当请求服务器时,HTTP请求都需要携带Cookie,用来验证用户身份。Cookie由服务端生成,存储在客户端,用来维持状态。通常Cookie由以下值构成:名称(name)值(value)域(Domain)值(value)路径(Path)