cookie是服務(wù)端通過Set-Cookie設(shè)置到瀏覽器中,瀏覽器保存這個值后抱怔,下次在同域的請求時就會自動帶上這個cookie(比如一個會話中牌芋,保存了用戶的登錄信息和登錄狀態(tài)吞滞,有助于服務(wù)端讀取,并且返回正確的內(nèi)容)离唐。存儲形式是鍵值對。Cookie的屬性:max-age和expires設(shè)置過期時間问窃;Secure只在https的時候發(fā)送亥鬓;設(shè)置HttpOnly掖鱼,則無法通過document.cookie(js的一個api)訪問(有助于提高安全性)拢肆。
下面通過一個簡單的例子說明:創(chuàng)建test.html和serve.js
啟動node server.js,打開頁面搂誉,瀏覽器中console和network顯示如下(這個是通過document.cookie讀取打印出來的):
第一次打開網(wǎng)頁的network如下(此時request header中沒有Cookie):
刷新頁面听皿,network如下(再次請求熟呛,request header中出現(xiàn)Cookie):
服務(wù)端向瀏覽器寫入cookie可以在瀏覽器如下查看:
同時Set-Cookie可以設(shè)置過期時間和多個值,node中是通過設(shè)置數(shù)組的方式:
刷新請求后尉姨,network中圖如下:
可以看出幾個存儲鍵值對的不同庵朝。15s以后,刷新瀏覽器又厉,查看network:
15s后九府,request header中不再帶上過期的Cookie。注意這里由于后只做了簡單的處理馋没,我們再次快速刷新兩次昔逗,則兩個Cookie仍然會帶上。
帶上HttpOnly則不可用document.cookie訪問篷朵,更改server.js如下:
這里只讀取到了name='simple'勾怒。設(shè)置HttpOnly是一種最佳實踐。
Session 的知識后續(xù)總結(jié)声旺。笔链。。腮猖。鉴扫。。澈缺。坪创。