利用node设置cookie,以及cookie值的一些说明

cookie服务端基本设置

const http = require('http');
http.createServer((req, res) => {
    // 获取客户端的
    const Cookies = {};
    req.headers.cookie && req.headers.cookie.split(';').forEach(cookie => {
        const part = cookie.split('=');
        Cookies[part[0].trim()] = (part[1] || '').trim();
    });
    console.log(Cookies);
    // 设置客户端的
    res.writeHead(200, {
        'Set-Cookie': 'SSID=Ap4GTEq; Expires=Wed, 13-Jan-2021 22:23:01 GMT;HttpOnly',
        'Content-Type': 'text/html'
    });
    res.end('Hello World\n<script>console.log(document.Cookie)</script>').listen(8000);
});
  1. HttpOnly属性: 微软对Cookie的扩展,如果设置,则通过js脚本等将无法读取到Cookie信息,防止XSS
  2. Secure属性: 当设置为true时,只能以HTTPS传递,如果是HTTP则不会传递该信息。所以在客户端,无法在document.Cookie找到被设置Secure = true的Cookie键值对。Secure = trueHttpOnly对访问控制更严格
  3. path属性: 指定可访问Cookie的目录
  4. domain属性: 指定可访问Cookie的主机名,同一个域下的不同主机

语法:'name=value;domain=CookieDomain';
eg: 'name=value;domain=.google.com' 这样www.google.comgmail.google.com都可以获取到该Cookie

  1. Expires属性: 指定过期时间

语法: 'name=value; expires=GMT_String'

GMT_String是以GMT格式表示的时间字符串,超过这个时间,Cookie就消失

  1. Max-Age属性: 指定此Cookie从创建到过期所能存在的时间,单位是,可以为负值

    • 当为负值时,该Cookie只储存在浏览器内存,只要关闭浏览器,此Cookie就会消失
    • 当为正值时,就表示所能存在时间
    • 当为0时,从客户端电脑或浏览器内存中删除此Cookie
    • 默认初始值为 -1
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容