首页 > 其他分享 >请描述一下cookies、sessionStorage和localStorage的区别?

请描述一下cookies、sessionStorage和localStorage的区别?

时间:2024-11-24 18:22:48浏览次数:6  
标签:cookies 浏览器 sessionStorage 存储 localStorage 标签 Cookie

在前端开发中,cookiessessionStoragelocalStorage 都是用于在浏览器中存储数据的机制,但它们之间存在显著的区别:

1. 数据的生命周期:

  • Cookies: Cookie 的生命周期可以通过 expiresmax-age 属性设置。如果没有设置过期时间,Cookie 会在浏览器会话结束时(关闭浏览器)被删除,这种 Cookie 也称为会话 Cookie。如果设置了过期时间,Cookie 会在指定的时间后过期并被删除,即使关闭浏览器也会保留。
  • sessionStorage: sessionStorage 的生命周期仅限于当前浏览器会话。当关闭浏览器窗口或标签页时,sessionStorage 中的数据会被清除。
  • localStorage: localStorage 中的数据会永久存储,直到被手动清除(例如,通过 JavaScript 代码或浏览器设置)或用户清除浏览器数据。关闭浏览器窗口或标签页不会影响 localStorage 中的数据。

2. 数据存储大小:

  • Cookies: Cookie 的大小限制约为 4KB。由于 Cookie 会随每个 HTTP 请求一起发送到服务器,因此较大的 Cookie 会影响网站性能。
  • sessionStorage 和 localStorage: sessionStorage 和 localStorage 的存储大小限制通常为 5MB 或更大,具体取决于浏览器实现。

3. 数据的访问范围:

  • Cookies: Cookie 可以在同一域名下的不同页面之间共享。还可以设置 path 属性来限制 Cookie 的作用范围。如果设置了 HttpOnly 属性,则 JavaScript 代码无法访问该 Cookie,这可以提高安全性。
  • sessionStorage: sessionStorage 仅在同一浏览器会话的同一窗口或标签页内可访问。不同窗口或标签页即使在同一域名下也无法共享 sessionStorage。
  • localStorage: localStorage 在同一域名下的所有窗口或标签页都可以访问,即使关闭浏览器后再打开新的窗口或标签页也可以访问。

4. 数据与服务器的交互:

  • Cookies: Cookie 会随每个 HTTP 请求一起发送到服务器,因此可以用于服务器端的用户身份验证和状态管理。
  • sessionStorage 和 localStorage: sessionStorage 和 localStorage 仅存储在客户端,不会自动发送到服务器。如果需要将这些数据发送到服务器,需要通过 JavaScript 代码手动发送。

总结:

特性 Cookies sessionStorage localStorage
生命周期 可设置过期时间,默认为会话结束 会话结束时清除 永久存储,直到手动清除
存储大小 ~4KB ~5MB 或更大 ~5MB 或更大
访问范围 同一域名下可共享,可设置路径限制 同一会话的同一窗口或标签页内可访问 同一域名下的所有窗口或标签页可访问
与服务器交互 随 HTTP 请求发送到服务器 仅存储在客户端 仅存储在客户端

选择哪种存储机制取决于具体的应用场景。例如,如果需要在服务器端进行用户身份验证,则可以使用 Cookie。如果只需要在客户端临时存储一些数据,则可以使用 sessionStorage。如果需要在客户端永久存储一些数据,则可以使用 localStorage。

标签:cookies,浏览器,sessionStorage,存储,localStorage,标签,Cookie
From: https://www.cnblogs.com/ai888/p/18566131

相关文章

  • Chromium 中Window.localStorage对象c++实现分析
    一、前端定义Window.localStorage只读的localStorage 属性允许你访问一个Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。localStorage 类似 sessionStorage,但其区别在于:存储在 localStorage 的数据可以长期保留;而当页面会话结束——也就是说,当页面......
  • Python使用browser_cookie3库来读取浏览器Cookies
    browser_cookie3是一个用于从浏览器中提取Cookies的Python模块。下面是使用该模块的步骤:1.安装browser_cookie3模块。pipinstallbrowser_cookie32.导入browser_cookie3模块。 import browser_cookie33.提取浏览器Cookies。可以使用下面的代码提取GoogleC......
  • 基于Pinia和Compute的持久化localStorage登录态管理Vuejs 源码教学
    piniaPinia是一个专为Vue3设计的状态管理库,它借鉴了Vuex的一些概念,但更加轻量灵活,使得状态管理变得更加简单直观。Pinia通过提供一种基于Vue3响应式API的状态管理机制,让我们可以更加优雅地管理应用程序的状态。computedVue的computed属性是一种特殊的数据属性,它们根据组......
  • Nginx基于cookies控制流量的灰度发布
    前言:    因为公司业务发版需要进行灰度发布,基于一定的权重来指向用户流量到不同的版本应用中,这里用nginx的两种不同的方法来实现。参考:        nginx会话保持之sticky模块-天生帅才-博客园(cnblogs.com)方法一:利用Nginx-sticky我将在这里介绍容器化......
  • localStorage、sessionStorage 和 cookies
    localStorage、sessionStorage和cookies都是用于在浏览器中存储数据的方式。localStorage用途:用于存储较大、较长期的数据,数据不会随浏览器关闭而消失,适合存储长期有效的信息,如用户设置、主题偏好等。•存储大小:大约5 MB左右。•有效期:数据会一直保留,直到用户......
  • localStorage、sessionStorage、Cookie的区别以及特点
    文章目录一、localStorage、sessionStorage、Cookie是什么?二、各自特点以及之间的区别1.`window.localStorage`2.`sessionStorage`3.`Cookie`三、写一个html页面以用来测试这三者不同的区别四、开始测试测试`localStorage`:测试`sessionStorage`:测试`Cookie`:总......
  • 前端数据持久化——Vuex+LocalStorage
    VuexVueX详解_组合式vuex-CSDN博客 LocalStorageLocalStorage是一种WebAPI,它允许网站在用户的本地浏览器中存储和检索数据,而不是将数据存储在服务器上。以下是LocalStorage的详细解析:一、LocalStorage的基本特点本地存储:LocalStorage存储的数据保存在用户的浏览器中,不......
  • LocalStorage 的使用方法
    LocalStorage是一种web端的存储机制,它使得由JavaScript编写的网站或者应用可以无限期的在浏览器中存储并访问数据。什么是无限期呢?就是说存储在浏览器中的数据是会一直存在的,及时浏览器被关闭了也不会消失。LocalStorage的使用方法要在你的web应用中使用LocalStorage,只......
  • Cookie、localStorage 和 sessionStorage 的区别及应用实例
    在前端开发中,持久化数据存储是一个非常常见的需求。为了实现这一点,浏览器提供了多种方式,包括Cookie、localStorage和sessionStorage。这三者各有优劣,适用于不同的场景1.CookieCookie是浏览器存储少量数据的一种机制,通常由服务器生成并发送到客户端。每次客户端向同一域名发......
  • Cookies设置和读取
    publicActionResultIndex(){#region写入CookiesHttpCookiecookie=newHttpCookie("CookieName");//初使化并设置Cookie的名称DateTimedt=DateTime.Now;//获取当前时间TimeSpants=newTimeSpan(0,0,......