美文网首页
[头参数]06 - Cookie

[头参数]06 - Cookie

作者: dyq666 | 来源:发表于2018-07-20 02:23 被阅读0次

    目录

    1. 测试Cookie的流程
    2. 过期时间
    3. 设置httpOnly
    4. 设置Secure
    5. 跨域问题

    0. 概述

    • 常用参数
    1. max-age, expires:设置过期时间。
    2. Secure:协议为https时才发送Cookie。
    3. httpOnly:控制能否被js的document.cookie访问。

    1. 测试Cookie的流程

    • 代码
    /**
     * 1. 测试cookie
     */
    const http = require('http')
    
    const port = 9000
    
    http.createServer(function(request, response) {
        // 设置两个cookie
        response.writeHead(200, {
            'Content-Type': 'text/html',
            'Set-Cookie': ['name=dyq666', 'sex=male']
        })
        response.end('<div>It is cookie test!</div>')
    
    }).listen(port)
    
    console.log("listen ", port)
    
    • 第一次的响应头
    • 第二次的请求头
    • 在浏览器中查看本地Cookie

    2. 过期时间

    缓存有两个常用的参数:

    1. max-age 代表从当前开始延后多长时间过期。
    2. expires 到哪个时间过期。
    • 不设置参数
    1. 不设置参数或设置比当前时间小,在关闭浏览器的时候过期。下图展示了不设置过期相关参数时浏览器为我们自动设置的值。


    2. 关闭浏览器后在查看本地的cookie。


    • 设置参数max-age

    设置20秒后过期,在浏览器的cookie页面20秒后刷新即可测试。

    'Set-Cookie': ['name=dyq666;max-age=20']
    

    3. 设置httpOnly

    查看浏览器的终端即可。

    'Set-Cookie': ['name=dyq666;httpOnly']
    

    4. 设置Secure

    'Set-Cookie': ['name=dyq666;Secure']
    

    5. 跨域问题

    • 概述

    发送时只会发送父域名的cookie和自己本身的域名,不会发送其他域名。

    • 修改本地的hosts文件,来测试

    创建两个二级域名和一个级域名

    127.0.0.1 a.test.com
    127.0.0.1 b.test.com
    127.0.0.1 test.com
    
    • 代码

    为子二级域名b.test.com设置一个cookie,为一级域名test.com设置一个cookie

    /**
     * 1. 测试cookie中的domain
     */
    const http = require('http')
    
    const port = 9000
    
    http.createServer(function (request, response) {
    
      response.writeHead(200, {
        'Content-Type': 'text/html',
        'Set-Cookie': ['role=father;domain=.test.com', 'role=son;domain=b.test.com']
      })
      response.end('<script>console.log(document.cookie)</script>')
    
    }).listen(port)
    
    console.log("listen ", port)
    
    • 测试

    在浏览器中分别访问三个域名+端口号,观察响应头参数或者浏览器中的cookie。

    1. a.test.com:9000


    2. b.test.com:9000


    3. test.com:9000


    相关文章

      网友评论

          本文标题:[头参数]06 - Cookie

          本文链接:https://www.haomeiwen.com/subject/yemxuftx.html