• 前端缓存方法有哪些?cookie有哪些属性?


    前端缓存方法有哪些:

    1. Browser Cache(浏览器缓存):

      • 当浏览器请求一个资源(例如图片、CSS、JS 文件)时,它会首先检查自己的缓存中是否已经有这个资源。如果有,就直接使用缓存的版本。
    2. HTTP Cache Headers:

      • 使用如 Cache-ControlETagLast-Modified 等 HTTP 头来控制资源的缓存行为。
    3. Service Workers:

      • Service Workers 运行在浏览器背景中,允许你拦截和缓存网络请求,使得你可以创建离线优先的网络体验。
    4. LocalStorage & SessionStorage:

      • localStorage: 用于永久存储数据,直到它被手动删除。
      • sessionStorage: 仅在当前浏览器会话期间存在的数据。
    5. Cookies:

      • 虽然 Cookies 主要用于存储会话信息,但也可以用作缓存的一部分。
    6. IndexedDB:

      • 一个事务性的数据库系统,允许存储大量数据,包括文件/二进制数据。
    7. Web Storage (localStorage & sessionStorage):

      • 提供了简单的键值对存储机制。与 Cookie 相比,它有更大的存储空间并且更加高效。
    8. Application Cache (已被废弃):

      • 是一个 HTML5 规范,允许开发者指定应该被缓存的文件,以便在没有网络连接的情况下进行访问。
    9. Memory Cache:

      • 浏览器会将部分或全部文档的 DOM 保存在内存中,以便快速切换。
    10. CDN (Content Delivery Network):

    • 虽然这不是前端缓存方法,但通过使用 CDN,可以缓存网站的静态资源,从而更快地将其传输给用户。

    选择何种缓存方法取决于应用的具体需求,例如数据的大小、持续时间、是否需要离线访问等。很多时候,最佳实践是组合使用多种缓存方法以达到最佳效果。

    cookie有哪些属性?

    Cookies 是由浏览器存储的小型数据片段,并与特定的网站关联。它们在 HTTP 头部中设置,并用于维护会话、跟踪用户。以下是 cookie 的常见属性:

    1. Name:Cookie 的名称。每个 Cookie 都有一个唯一的名称,以区分同一域名下的其他 Cookie。

    2. Value:与 Cookie 名称关联的值。

    3. Domain:指定哪个域名下的页面可以访问该 Cookie。如果未设置,则默认为创建 Cookie 时的域名

    4. Path:指定哪些路径可以访问该 Cookie。如果未设置,默认为’/',即该域名下的所有路径都可以访问。

    5. Expires/Max-Age

      • Expires:设置 Cookie 的过期日期和时间。在此日期和时间之后,Cookie 会被删除
      • Max-Age:设置从当前时间开始,Cookie 存活的最长秒数。当达到这个时间后,Cookie 会被自动删除
    6. Secure:当设置此标志时,Cookie 只会在使用 HTTPS 协议的请求中发送。

    7. HttpOnly:当设置此标志时,Cookie 不会被 JavaScript 访问只能由服务器访问。这有助于减少跨站脚本攻击

    8. SameSite:这是一个相对较新的属性,用于声明 Cookie 是否在跨站点请求中发送

      • Strict:Cookie 有在同一个站点的请求中发送。
      • Lax:在顶级导航GET 方法跨站请求中,Cookie 会被发送。
      • None:Cookie 会在所有的请求中发送,无论是否跨站点

    cookie相关的面试题,来不及准备了,先记录:
    与 Cookie 相关的面试题可以涵盖其基础知识、应用和安全性等方面。以下是一些常见的面试题:

    1. 基础知识

      • 什么是 Cookie?
      • Cookie 和 sessionStorage、localStorage 有什么区别?
      • 为什么会使用 Cookie?
      • 如何设置、读取和删除 Cookie?
    2. 使用场景与限制

      • 什么情况下应该使用 Cookie,而什么情况下应该避免?
      • 描述一个使用 Cookie 进行身份验证的场景。
      • Cookie 的大小和数量有什么限制?
    3. 安全性

      • 什么是第三方 Cookie,为什么它们是有争议的?
      • 如何防止 Cookie 被劫持?
      • 什么是跨站请求伪造(CSRF)?如何使用 Cookie 防止它?
      • HttpOnlySecure 标志是什么?它们为什么重要?
      • 什么是 SameSite 属性,它如何提高安全性?
    4. 与服务器的交互

      • 当浏览器发起请求时,Cookie 是如何发送到服务器的?
      • 如何在服务器端设置一个 Cookie 并发送到客户端?
    5. 其他技术与 Cookie 的关系

      • 如何使用 JavaScript 操作 Cookie?
      • 描述一个使用 Cookie 和 sessionStorage 同时实现的功能。
      • Cookie 和 JSON Web Tokens (JWT) 之间有什么关系?
    6. 最佳实践

      • 在设计一个需要长时间登录的应用程序时,你会如何使用 Cookie?
      • 当存储敏感信息时,你会如何确保 Cookie 的安全?

    以上只是一些常见的与 Cookie 相关的面试题。当然,面试时的问题可能会根据公司、职位和面试官的经验而有所不同。

  • 相关阅读:
    流沙画模拟器源码
    【算法挨揍日记】day16——525. 连续数组、1314. 矩阵区域和
    SpringBoot + Apache tika 轻松实现各种文档内容解析
    【Transformer 论文笔记】Attention is all you need
    呆头鹅-全自动视频混剪,批量剪辑批量剪视频,探店带货系统,精细化顺序混剪,故事影视解说,视频处理大全,精细化顺序混剪,多场景裂变,多视频混剪
    【深度学习】(问题记录)<对一个变量求梯度得到什么>-线性回归-小批量随机梯度下降
    时序数据库
    优雅退出在Golang中的实现
    Python和Excel的完美结合:常用操作汇总
    【单调栈】下一个更大元素 III
  • 原文地址:https://blog.csdn.net/weixin_43850639/article/details/132670180