问答

在一个网站上可以完全不使用 cookie 吗?

作者:admin 2021-06-07 我要评论

作为网站的第一方开发者,完全不使用 cookie,改为用 storage API 在客户端存储,用 http API 与服务端交互,可行吗? ### 如果是 vue,rn这种单体应用,前端就是...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

作为网站的第一方开发者,完全不使用 cookie,改为用 storage API 在客户端存储,用 http API 与服务端交互,可行吗?

###

如果是 vue,rn这种单体应用,前端就是纯前端,和 接口交互都是走的 ajax 这种,你完全可以用 js+ localstorage 来实现 cookie 的逻辑. 但是,如果页面上的请求,如果不是由 js 触发的.你没办法把 localStorage 里的信息带上去的话,这就不行了. cookie 的 http-only 标识,这个你就没办法处理了.只要放到了 localstorage 里,js 就可以谁便撸了.

###

先说结论: 可行;

但是有缺点:

  1. cookie会在每次的http请求中自动带上, 你如果写在localStorage的话需要每次手动带上
  2. cookie可以直接由后端http请求中的set-cookie自动存储在客户端, localStorage需要手动存储
  3. cookie可以设置javascript不可直接获取值, 但是localStorage的话就不行, 因此有安全问题
  4. 按照定义, cookie用于存储用户标识, localStorage用于存储其他标识, 比如保存用户名

总结: 如果存储用户的标识(用户登录状态等), 可用cookie; 其他的可使用localStorage;

###

cookies 弥补了http的无状态性, 通过很多的头信息可以方便的操作cookies,其实这是一个后端的东西,你要是用storage那么就摒弃了很多http特性,而且还要手动实现原有http比较好实现的功能,比如token的维护

###

只要你觉得行就行。
如果没有什么需求是Storage实现不了而Cookie 实现得了的,有什么不行的呢?

如果你都明确了有些需求只能用Cookie,那就不行。

我能想到保留 cookie 而不使用 Storage 的唯一原因是考虑老版本浏览器的兼容性问题。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • PHP-fpm怎么实现进程间同步与互斥的?

    PHP-fpm怎么实现进程间同步与互斥的?

  • ts类型问题

    ts类型问题

  • js不带引号的对象格式字符串怎么转为对

    js不带引号的对象格式字符串怎么转为对

  • Number.prototype.toFixed() 四舍五入

    Number.prototype.toFixed() 四舍五入

腾讯云代理商
海外云服务器