首页 > 其他分享 >Cookie、localStorage、sessionStorage

Cookie、localStorage、sessionStorage

时间:2023-06-06 20:11:49浏览次数:51  
标签:存储 浏览器 sessionStorage Cookie localStorage 页面

本文参考了以下视频

  1. cookie、localStorage 和 sessionStorage的区别及应用实例
  2. 浏览器本地存储

Cookie是一种存储机制
HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据(一般不超过4kb)。浏览器会存储 cookie 并在下次向同一服务器再发起请求时携带并发送到服务器上。通常,它用于告知服务端请求是否来自同一浏览器——如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。
image
浏览器查看位置
image
如果没有设置HttpOnly,则可以直接通过JS读取Cookie(document.cookie),Cookie是字符串,格式为"key1=value1; key2=value2; ...",多个键值对之间以分号空格"; "的形式隔开
image

比如在用户下次登录时,浏览器会根据Cookie自动填充用户名。如下是这个过程的简单实现
image

Window.localStorage和Window.sessionStorage

localStorage对象和sessionStorage对象都是HTML5的新特性之一。键值对总是以字符串的形式存储
image
localStorage和sessionStorage都有setItem('key', 'value'),getItem('key'),removeItem('key'),clear()方法
以sessionStorage为例

// 保存数据到 sessionStorage
sessionStorage.setItem('key', 'value');

// 从 sessionStorage 获取数据
let data = sessionStorage.getItem('key');

// 从 sessionStorage 删除保存的数据
sessionStorage.removeItem('key');

// 从 sessionStorage 删除所有保存的数据
sessionStorage.clear();

因为键值对总是以字符串的形式存储
注意

  1. 存储在 sessionStorage 或 localStorage 中的数据特定于页面的协议。也就 是说 http://example.comhttps://example.com 的 sessionStorage/localStorage 相互隔离。
  2. 被存储的键值对总是以 UTF-16 DOMString 的格式所存储,其使用两个字节来表示一个字符。所以数值,复杂数据类型(对象,数组等)的数据会自动转换成字符串形式。
    若不想让复杂数据类型被转成字符串而造成数据丢失,比如对象类型的数据会转换成[object Object],可以在存储的时候用JSON.stringfy()将其转换成JSON字符串,用的时候再JSON.parse()恢复

localStorage

存储在 localStorage 的数据可以长期保留(存储在计算机硬盘中),

关机后再用同一浏览器打开以前登录过的页面仍能保持登录状态,这就是利用了localStorage。但是用另一浏览器打开同一网站(前提是该浏览器以前未登录过该网站),却不能保持登录状态,是因为不同浏览器存放localStorage数据的地方不是同一个地方
以下简单地模拟了利用localStorage保存历史上搜索过的数据,sessionStorage也能实现这样的功能,把以下代码中的localStorage换成sessionStorage就好啦
image

sessionStorage

当页面被关闭时,存储在 sessionStorage 的数据会被清除。

  • 页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。
  • 在新标签或窗口打开一个页面时会复制顶级浏览会话的上下文作为新会话的上下文,这点和 session cookie 的运行方式不同。
  • 打开多个相同的 URL 的 Tabs 页面,会创建各自的 sessionStorage。
  • 关闭对应浏览器标签或窗口,会清除对应的 sessionStorage。

以下是Cookie、localStorage、sessionStorage间的对比
image
由于cookie是与请求一起发送的,而localStorage、sessionStorage是存在本地,所以cookie体积比localStorage
、sessionStorage小得多

标签:存储,浏览器,sessionStorage,Cookie,localStorage,页面
From: https://www.cnblogs.com/road2code/p/17461516.html

相关文章

  • Flutter 使用dio来发起网络请求以及Cookie管理
    前言Flutter官方建议您使用 dio 来发起网络请求,在学习过程中,也尝试过用dartio中的HttpClient发起的请求,这里主要讲一下dio的使用以及CookieJar、CookieManager管理cookie。diodio是一个强大易用的darthttp请求库,支持RestfulAPI、FormData、拦截器、请求取消、Cookie......
  • Python爬虫入门六之Cookie的使用
     大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用。为什么要使用Cookie呢?Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个......
  • python实现cookie登录
    前言之前有写过一个小程序,获取网站的回复(需要登陆)今天再去运行发现运行不了了再三检查后发现,是cookie没用了,可能是网站升级了吧重新获取一下cookie一、获取cookie1、用浏览器登录网站,以虎牙为例,按f12,选择Network,然后刷新网站2、找到最上面的huya.com,里面包含了cookie3、单机即......
  • Cookie的理论基础
    1. 简单Cookie介绍   46session的实现原理中,每一个session对象都会关联一个sessionid,例如:  - JSESSIONID=41C481F0224664BDB28E95081D23D5B8  - 以上的这个键值对数据其实就是cookie对象。 - 对于session关联的cookie来说,这个cookie是被保存在浏览器的“运行内存”当......
  • 使用session+cookie改造单表项目
    1.  session掌握之后,我们怎么解决oa项目中的登录问题,怎么能让登录起作用。  441.1 思路  44  - 登录成功之后,可以将用户的登录信息存储到session当中。也就是说session中如果有用户的信息就代表用户登录成功了。session中没有用户信息,表示用户没有登录过。则跳转到登录页......
  • Flask 会话技术 cookies原理
    cookies#首页@blue.route('/')@blue.route('/home/')#装饰器可以用多个,这两个路由都能访问到home函数defhome()#4.获取cookieusername=request.cookies.get('user')returnrender_template('home.html',username=username)#......
  • 利用cookie进行SQL注入——看来还是人工注入要熟悉才行
    Less-20基于错误的cookie头部POST注入首先从已知的条件中我们知道这又是一道“头部注入”,那么我们先输入正确的用户名和密码看一下登录成功是什么样子的:回显有User-Agent、IP这样从当次Request直接获取的,也有Cookie这样刷新页面后仍存在的,还有......
  • Jmeter Cookie 设置不起效解决
    使用HttpCookieManager不能将前一个请求设置的Cookie传递到下一个请求。特别是对于一些 使用302重定向的页面。解决方案是使用 BeanShellPreProcessornewCookie(name,value,domain,paht,secure,length)name:要设置的cookienamevalue:要设置的value,可以是......
  • Cookie、Session、Token、LocalStorage、SessionStorage
    Cookie简介:HTTP是无状态的,服务器无法记录收到的每一次请求,意味着服务器无法识别不同的请求是否来自相同的客户端。Cookie是服务器创建的一个对象,在收到客户端请求后,携带在响应头(Set-Cookie)中返回给客户端,客户端将Cookie存到本地,在下一次请求中将Cookie信息放到请求头发......
  • 找到网站中的cookie
    1.右键“检查”   2.选中“application”: 3.点击“cookies”(这里的cookies是按照网站进行分类的) 4.cookie为key:value形式的组合: 4.cookieeditor插件可以批量导出cookie,复制cookie,粘贴cookie:  export导出: 另一个浏览器导入:  粘贴: ......