cookies vs javaScript中的本地存储
#javascript #网络开发人员 #编程 #browser

cookie和localStorage都是将数据存储在客户端方面的方法,但是它们具有不同的目的,用例和特征。这是两者的比较:

  1. lifespan

    • cookie :可以有设定的到期日期。如果未设置,它们将在会话结束时(即浏览器关闭时)到期。
    • localstorage :没有到期日期。数据一直存在直到明确删除。
  2. 容量

    • cookie :限制为每个cookie。
    • localstorage :通常,浏览器为localStorage分配约5-10 MB(尽管浏览器的确切量可能会有所不同)。
  3. 范围

    • cookie :范围为域和路径。如果cookie的域和路径与请求匹配,则可以随着每个HTTP请求发送到域。
    • localstorage :仅在同一域上通过JavaScript访问。 localStorage中存储的数据未与HTTP请求一起发送。
  4. 性能

    • cookie :由于每个HTTP请求都发送到域(如果匹配域和路径),它们可能会稍微降低Web流量。
    • localstorage :不会影响HTTP流量,因为数据仅存储和访问客户端。
  5. 服务器端

    • cookie :可以读取服务器端,这对于身份验证令牌和其他服务器端任务很有用。
    • localstorage :无法读取服务器端。
  6. 数据类型

    • cookie :仅存储字符串。
    • localstorage :尽管它本质地将所有内容存储为字符串,但是在检索时保存时也可以使用JSON.stringify()存储对象。
  7. 安全

    • cookie :可以安全(如果用Secure标志设置),而仅通过HTTPS传输。也可以标记HttpOnly,这意味着无法通过JavaScript访问它们,从而提供了一些防止跨站点脚本(XSS)攻击的保护。
    • localstorage :容易受到跨站点脚本(XSS)攻击的影响。如果攻击者可以在网站上运行JavaScript,则可以访问和修改localStorage
  8. 用例

    • cookie :通常用于会话,用户识别和跟踪。
    • localstorage :非常适合将大量的非敏感数据存储在客户端,例如用户设置,缓存数据或离线应用程序数据。
  9. 易用性

    • cookie :在没有库的JavaScript中使用更麻烦。
    • localstorage :具有非常简单的API(例如localStorage.setItem('key', 'value')localStorage.getItem('key'))。
  10. 其他存储选项

    • 超越cookies和localStorage,现代浏览器还提供sessionStorage(类似于localStorage,但会在会话中到期)和indexedDB(一个更复杂的客户端数据库系统)。

总而言之,尽管Cookie和localStorage都提供客户端数据存储,但它们的用例,特征和技术细节差异很大。它们之间的选择很大程度上取决于您的Web应用程序的特定要求。

感谢您的阅读。我鼓励您在Twitter上关注我,我定期分享有关JavaScript和反应的内容,并为开源项目和学习Golang做出贡献。我目前正在寻找远程工作或实习。

Twitter:https://twitter.com/Diwakar_766

github:https://github.com/DIWAKARKASHYAP

投资组合:https://diwakar-portfolio.vercel.app/