欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 关于node中cookie的相关研究

关于node中cookie的相关研究

2024/10/26 6:57:24 来源:https://blog.csdn.net/qq_73917015/article/details/143245298  浏览:    关键词:关于node中cookie的相关研究

在请求头中加入set-cookie字段,客户端收到这个Set-Cookie的ֽ应后,在之后的请求时会在Cookie中上这个值。
一般格式可以参考如下

Set-Cookie: token=dywuh1g87; Expires=Wed, 11 Aug 2024 07:28:00 GMT; Secure; HttpOnly

了解一下cookie

解释一下常用的几个属性

  • Expires 这个属性用于控制 Cookie 的生命周期。Expires 指定了 Cookie 的过期日期和时间,如果这个属性没有设置会在浏览器关闭时被删除。
  • Max-Age 这个属性同样用于控制 Cookie 的生命周期。但Max-Age 则表示 Cookie 自创建起的最大有效时间(以秒为单位)
  • Domain 这个属性指定了 Cookie 的适用域名。默认情况下,Cookie 仅适用于响应中设置 Set-Cookie 头的域名。如果设置了 Domain 属性,Cookie 可以在该域名的所有子域中使用。举例来说,Domain=baidu.com 会让 Cookie 在 baidu.com 以及 sub.baidu.com 等子域中都可用。
  • Path 这个属性规定了 Cookie 应该在哪个路径下被发送。默认情况下,Cookie 适用于请求路径及其子路径。例如,Path=/a允许 Cookie 仅在 /a及其子路径下有效,而在 /c目录下则不会发送这个 Cookie。
  • Secure 如果设置了 Secure 属性,Cookie 只能通过 HTTPS 连接发送,而不能进行HTTP连接发送,这样确保数据在传输过程中被加密。这在处理敏感信息时尤其重要,比如登录凭据或支付信息。
  • HttpOnly 这个属性限制了 Cookie 只能通过 HTTP 协议访问,而不能通过 JavaScript 代码访问。这增加了 Cookie 的安全性,因为它减少了 XSS(跨站脚本攻击)等安全威胁的可能性。

值得注意的是:expires和max-age在设置后,如果设置了时间,浏览器会将cookie写入磁盘,下次打开依旧有效,但expires存在可以忽略的问题,expires的时间设置后,当客户端和浏览器端时间不匹配时,就会产生偏差。

Set-Cookie是较少的,在报头中可能ߚ在多字段。为此res.setHeader的第二个参数可以是一个数组

cookie存在的性能问题

由于Cookie的实现机制,一旦服务端向客端发了设置Cookie的意图,除非Cookie过期
否则客户端每次请求都会带cookie到服务器,一旦设置的Cookie过多,,将会导致报头较大。所以减少不必要的cookie,毕竟流量就是钱嘛。

cookie性能浪费的几个解决方案

  1. 细分path
  2. 为静态组件使用不同的域名

cookie纯在的安全问题

  • cookie可以被用户篡改

早期的服务器为了记录用户信息,浏览器会将信息通过cookie传给服务器,这个导致后来的服务器session的出现。cookie会和服务器的session纯在映射关系,但是一旦session过多,就会达到node内存上限(这个上限可以手动增大),这个主要是由于V8的原因,V8一开始目标就是浏览器运行,这个解决的方法可以是redis高速缓存,session的出现一定程度上解决了用户再主动篡改,但是cookie可能会被外人非法劫持,这个也导致了token的产生,目前常见的对应包jsonwebtoken,通过公钥/私钥进行加密,现在的加密技术已经比较成熟了

如果我的文章出现问题,欢迎大佬提出意见!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com