學習了一下cookie,這裡做下個人分享。
cookie是一種儲存機制,主要是web伺服器開發人員設定的,前端開發人員較少使用cookie,使用情況比如後端返回的token沒有放在cookie中,前端想要放在cookie中時即可使用。好處是cookie有失效時間,也就是在失效之前都是可以獲取到的。
後端設定(主要是測試使用,真正使用時會在中介軟體中處理,比如jwt)
const koa = require('koa');
if(ctx.url=== '/')
);ctx.body = 'cookie is ok';
}elseelse
}}); console.log('server is starting at port 3001');
});
通過瀏覽器訪問介面可以發現cookie設定在了headers中,同時可以在cookie中檢視。
我們換個路徑測試
cookie被攜帶了進了請求頭的headers。
使用postman測試
可以看出跟瀏覽器測試是一致的。
前端設定時使用js-cookie等即可。
這裡做個解釋
domain
設定域,path
設定目錄,目錄以下的可以獲取到cookie,例如 [path:』/a』],使用』或者』都可以在headers自動傳遞cookie,但如果使用』則不會有cookie,因為獲取不到。 『expires:new date(『2019-5-13』)』,設定過期時間,如果設定的時是當前時間之前,那麼cookie不會正常寫入,因為已經失效。如果同時設定了maxage
, 則expires
無效,maxage表示以當前時間為基準,往後順延的有效時間。
vue專案中通常使用axios傳送,使用withcredentials:true
會攜帶cookie。
BOA對COOKIE的支援
boa對於cookie的支援不是很好,google了一番,終於在chinaunix上找到了答案,主要還是對網頁標頭的處理不夠全面引起的。補充一點,對於編寫出來的cgi bin檔案,用arm linux gcc 3.4.1通過,提示是沒有網頁頭,bad gateway,缺少lflf,在目標板上無法執行...
httpclient對cookie的處理
session的保持是通過cookie來維持的,所以如果使用者有勾選x天內免登入,這個session 就x天內一直有效,就是通過這個cookie來維護。如果沒選x天內免登入,基本上就本次才能保持session,下次開啟瀏覽器就要重新登入了。所以在web安全裡,黑客通過xss,最終目的就是獲取cook...
前端對cookie的使用
注意 要使用cookie,頁面必須在伺服器中執行,直接雙擊開啟頁面無法使用cookie。設定自定義過期時間cookie function setcookie name,value,time 將字串時間轉換為毫秒,1秒 1000毫秒 function getmsec str else if times...