利用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從創(chuàng)建到過期所能存在的時間,單位是,可以為負值

    • 當為負值時,該Cookie只儲存在瀏覽器內(nèi)存,只要關閉瀏覽器,此Cookie就會消失
    • 當為正值時,就表示所能存在時間
    • 當為0時,從客戶端電腦或瀏覽器內(nèi)存中刪除此Cookie
    • 默認初始值為 -1
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容