浏览器的存储,cookie(httponly)、localStorage、sessionStorage、indexed对比

这篇具有很好参考价值的文章主要介绍了浏览器的存储,cookie(httponly)、localStorage、sessionStorage、indexed对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.浏览器的存储

浏览器提供了多种客户端存储机制,每种机制都有其特定的用途、特性和限制。以下是对 cookielocalStoragesessionStorageIndexedDB 的对比:

1. Cookie

  • 存储大小: 通常限制为4KB。
  • 生命周期: 可以设置过期时间。如果没有设置,它的生命周期将与会话持续相同,即关闭浏览器后会被删除。
  • 与服务器交互: 每次HTTP请求都会附带,这可能会浪费带宽。
  • 访问性: JavaScript可以访问,但需要考虑安全性(例如:设置HttpOnly标志以防止通过JS访问)。
  • 使用场景: 适合小量数据的存储,经常用于身份验证(如存储JWT或会话ID)。

2. LocalStorage

  • 存储大小: 通常限制为5-10MB。
  • 生命周期: 没有过期时间,除非明确删除,否则数据会永久存储。
  • 与服务器交互: 数据只在客户端存储,不会随每次请求发送给服务器。
  • 访问性: 可以通过JavaScript访问。
  • 使用场景: 适合大量持久化的数据,如用户偏好设置、主题等。

3. SessionStorage

  • 存储大小: 通常限制为5-10MB。
  • 生命周期: 数据在页面会话期间可用,关闭页面或浏览器后会被清除。
  • 与服务器交互: 数据只在客户端存储,不会随每次请求发送给服务器。
  • 访问性: 可以通过JavaScript访问。
  • 使用场景: 适合需要在浏览器会话中临时存储的数据。

4. IndexedDB

  • 存储大小: 无明确的限制,但可能受到磁盘空间的影响。通常可以存储大量数据。
  • 生命周期: 没有过期时间,除非明确删除,否则数据会永久存储。
  • 与服务器交互: 数据只在客户端存储,不会随每次请求发送给服务器。
  • 访问性: 可以通过JavaScript访问。
  • 结构: 它是一个事务性的数据库系统,可以存储键值对,支持索引,事务和游标。
  • 使用场景: 适合大量数据的存储,如离线应用数据、大数据集等。

总结

  • 大小: cookie < localStorage/sessionStorage << IndexedDB
  • 生命周期: sessionStorage < cookie (如果设置了过期时间) = localStorage = IndexedDB
  • 与服务器交互: 只有cookie会随HTTP请求自动发送。
  • 结构: 只有IndexedDB提供了数据库的功能和结构。
  • 用途: 根据存储需求和数据的大小、持续性来选择合适的存储机制。

2.httponly

当面试中被问到httpOnly时,你可以从以下几个方面来回答:

1. 定义

httpOnly是一个标志,可以在服务器端设置为Cookie。当一个Cookie被标记为httpOnly时,这意味着这个Cookie不能被客户端的JavaScript访问。

2. 为什么使用 httpOnly

主要的使用场景是为了增加安全性。通过设置httpOnly标志,我们可以防止跨站脚本攻击(XSS)中的恶意脚本获取到该Cookie。因为即使攻击者可以注入并执行脚本,由于浏览器的限制,他们不能读取到标记为httpOnly的Cookie的内容。

3. 使用场景

通常,包含敏感信息的Cookie,如会话标识符或其他重要凭证,应该设置为httpOnly,以防止潜在的XSS攻击。

4. 如何设置

在服务器端,当创建或设置Cookie时,可以添加httpOnly属性。例如,在Express的Node.js应用程序中:

res.cookie('name', 'value', { httpOnly: true });

5. 限制

尽管httpOnly可以提高安全性,但它不是XSS的银弹解决方案。你仍然需要其他的安全措施来确保你的应用程序对XSS攻击有充分的防护。

此外,使用httpOnly标志的Cookie仍然可以被其他类型的攻击读取,例如跨站请求伪造(CSRF)或中间人攻击,因此也需要其他安全措施,如设置secure标志和实施CSRF令牌。

总结起来,当你被问及httpOnly时,你可以描述它的定义、目的、使用方式以及其在Web安全中的地位。文章来源地址https://www.toymoban.com/news/detail-688866.html

到了这里,关于浏览器的存储,cookie(httponly)、localStorage、sessionStorage、indexed对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • cookie、localStorage和sessionStorage详解

    cookie、localStorage和sessionStorage详解

      目录 一、cookie 二、Web storage 1、localStorage 2、sessionStorage的使用  3、复杂数据类型储存 Web Storage带来的好处:  三、sessionStorage、localStorage和cookie的区别  cookie是客户端与服务器端进行会话使用的一个能够在浏览器本地化存储的技术。简言之,cookie是服务器端发给客户端的文

    2024年02月03日
    浏览(9)
  • Vue——vuex使用、Router使用、localstorage、sessionstorage和cookie
  • 请谈谈session、cookie、 localStorage和SessionStorage的区别和特点?

    Session、Cookie、localStorage和SessionStorage都是用于在客户端和服务器之间存储数据的技术,但它们之间存在一些重要的区别和特点。 Session : 含义 :在Web开发中,Session通常指的是服务器为每个用户维护的会话信息。当用户首次访问一个网站时,服务器会为该用户创建一个唯一的

    2024年01月21日
    浏览(10)
  • 原生JavaScript实现本地存储(localStorage)和会话存储(sessionStorage)

    目录 一、简单介绍 二、localStorage本地存储 三、sessionStorage会话存储 本地存储和会话存储的目的,是将所输入的文件存入到浏览器中,在需要的时候,直接调用,但是本地存储和会话存储有着一定的区别,本地存储,在不主动删除的情况下,会一直保留在浏览器中,会话存储是

    2023年04月08日
    浏览(15)
  • Python + Selenium 处理浏览器Cookie

    工作中遇到这么一个场景:自动化测试登录的时候需要输入动态验证码,由于某些原因,需要从一个已登录的机器上,复制cookie过来,到自动化这边绕过登录。 浏览器的F12里复制出来的cookie内容是文本格式的: 这里需要把cookie文本处理为name和value格式的字典形式,这个是S

    2024年02月13日
    浏览(15)
  • 深入解析浏览器Cookie(图文码教学)

    深入解析浏览器Cookie(图文码教学)

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主! 也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! Cookie 翻译过来是饼干的意思。 Cookie是一种用于在客户端浏览器和服务器之间进行状态跟踪的技术

    2024年02月16日
    浏览(12)
  • 利用HTML5存储对象:localStorage和sessionStorage解析

    前端朋友们,你是否曾为如何在用户的浏览器中存储数据而感到困扰?你是否想过,如果可以在用户的浏览器中存储一些数据,那么我们的应用程序将会变得多么强大?如果你的答案是肯定的,那么本文将为你解锁一种新的能力——使用HTML5的localStorage和sessionStorage。 HTML5引入

    2024年02月05日
    浏览(8)
  • 谷歌浏览器如何查看cookie存放信息

    谷歌浏览器如何查看cookie存放信息

    Cookie,有时也用其复数形式 Cookies。类型为“ 小型文本文件 ”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。下面以谷歌游览器查看cookie为例 谷歌浏览器查看cookie 1.打开谷歌游

    2024年02月05日
    浏览(13)
  • Chrome 浏览器插件 cookies API 解析

    Chrome 浏览器插件 cookies API 解析

    前端开发肯定少不了和 cookie 打交道,此文较详细的介绍下 chrome.cookie 的 API 以及在 popup、service worker、content 中如何获取的 如果需使用 Cookie API ,需要在 manifest.json 文件中添加权限( Permissions )和主机权限( host_permissions )字段 比如,我需要获取 domain 为 .lkcoffee.com 的 cook

    2024年01月21日
    浏览(13)
  • 【温故而知新】HTML5存储localStorage/sessionStorage

    HTML5是HTML的最新版本,它引入了许多新的元素和功能,以适应现代网页开发的需求。以下是HTML5的一些主要特点: 新增语义元素 :HTML5引入了许多新的语义元素,如 header、footer、article、section 等,这些元素有助于提高网页的结构化和可访问性。 媒体支持 :HTML5引入了 audio 和

    2024年01月18日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包