浏览器 - cookie

151 阅读1分钟
一、浏览器 Document.Cookie
  • path:默认是 '/',子域都是有效
  • domain:指定 cookie 所属域名,默认是当前域名
  • expires:一个绝对的过期时间(GMT格式)
  • max-age:时间段、单位秒
  • secure:是否使用https默认为false。当secure值为true时cookie在HTTP中是无效的
const cookie1 = "name=zhangsan; path=/;"
const cookie2 = "age=16; max-age=3600;"
const cookie3 = "sex=man; path=/;"
                
// 设置cookie              
document.cookie = cookie1;
document.cookie = cookie2;
document.cookie = cookie3;


// 获取cookie:多个cookie中间以空格隔开             
console.log(document.cookie) // name=zhangsan; age=16; sex=man 


// 删除cookie:直接设置过期时间
document.cookie = "age=16; max-age=0;"
二、服务器 Http.Cookie
  • path:同上
  • domain:同上
  • expires:同上
  • max-age:同上
  • secure:同上
  • HttpOnly:阻止 JavaScript 通过 Document.cookie 属性访问 cookie
  • SameSite:允许服务器设定一则 cookie 不随着跨站请求
    • Strict:跨站点时任何情况下都不会发送 Cookie
    • Lax:跨站点时任何情况下都不会发送 Cookie(Get除外)
    • None:跨站和同站请求中均发送 cookie,必须同时设置 Secure 属性
var http = require("http");
var fs = require("fs");

http
  .createServer(function (req, res) {
    res.setHeader("status", "200 OK");
    res.setHeader(
      "Set-Cookie",
      "isVisit=true;domain=www.baidu.com;path=/;max-age=1000"
    );
    res.write("Hello World");
    res.end();
  })
  .listen(8888);

console.log("running localhost:8888");
三、注意点
  • 后端设置的cookie会自动存储到浏览器中
  • 前端、后端设置的cookie,请求时都会设置到header中