cookie

Posted wzndkj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cookie相关的知识,希望对你有一定的参考价值。

cookie
通过Set-Cookie设置,里面的内容我们就叫cookie
下次请求的时候会自动带上
cookie是以健值对的形式设置,可以设置多个

 

cookie的属性
max-age和expires设置过期时间
secure只在https的时候发送
HttpOnly无法通过document.cookie访问(防止被攻击)

 

使用

//server.js
const http = require(‘http‘);
const fs = require(‘fs‘);


http.createServer(function(req,res){
  console.log(‘req come‘, req.url);
  if (req.url === ‘/‘) {
    const html = fs.readFileSync(‘test.html‘, ‘utf8‘);
    res.writeHead(200,{
      ‘Content-Type‘: ‘text/html‘,
      ‘Set-Cookie‘: ‘id=123‘
    })
    res.end(html);
  }
}).listen(8888);


console.log(‘server listening on 8888‘);
console.log(‘http://localhost:8888/‘);

 

<!--test.html-->
<body>
  <div>Content</div>
  <script>
    console.log(document.cookie)
  </script>
</body>
启动服务,访问8888端口,可以看到打印出来了console,访问到了,cookie设置里面有内容,每次返回的时候也带上了Set-Cookie

技术分享图片

 

技术分享图片

技术分享图片

 

cookie是可以设置多个的
‘Set-Cookie‘: [‘id=123‘,‘abc=456‘]
 技术分享图片

技术分享图片

 

如图,多个cookie是通过数组实现的,看到两个Set-Cookie,application里面保存了两个

 

cookie是存在时效的,把浏览器关了,再访问,就发现network没有了cookie,application里面是清空了重新存储的,再重新发送,就发现req又带上了cookie
‘Set-Cookie‘: [‘id=123;max-age=2‘,‘abc=456‘]
设置了,123过期时间,看下实际效果
技术分享图片

 

再刷新,发现req里面只带了456

技术分享图片

 



cookie的HttpOnly
‘Set-Cookie‘: [‘id=123; max-age=2‘,‘abc=456; HttpOnly‘]

 

保存,启动,刷新,

 技术分享图片

 

发现只访问到了123,再把HttpOnly去掉

 技术分享图片

 

发现123,456都访问到了,这就是禁止js访问的作用

 

cookie不同域不能共享cookie,二级域名一样可共享cookie

 

以上是关于cookie的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript单行代码,也就是代码片段

XSS:如何从 C# 中的字符串中删除 JS 片段?

Django cookie 横幅:window.wpcc 未定义

最详细的cookie和浏览隐私之间的关系

c#如何采集需要登录的页面

IE无法获得cookie,ie不支持cookie的解决办法,火狐支持