cookie本質上也是請求頭(即header),只是名為cookie
請求頭不能有中文,所以cookie中也不能有中文,否則會報錯error: invalid character in header content ["cookie"]
cookie有長度限制,各瀏覽器長度限制不一樣,所以較長的內容一般放在local storage
image.png
同乙個域下的cookie數量也有限制
前端呼叫後端介面時,缺省會把介面的域及父域下的cookie傳給後端。
比如介面的域是mall.crazyboy.com,父域是crazy.com,缺省會把mall.crazyboy.com和crazy.com這兩個域下的cookie傳給後端
cookie預設上傳的這個特性,有時候會導致問題。
本菜遇到過一次請求異常,引數檢查沒問題,就是因為傳了多餘的cookie。
下圖為使用postman時,檢視/編輯預設上傳的cookie
image.png
使用cookie或其他請求頭傳token有什麼區別
有的瀏覽器禁用cookie,只能在其他請求頭(比如authorization)傳token,所以後端***一般會同時在cookie和特定請求頭中檢查token
image.png
為什麼不全都用其他請求頭傳token
有些場景無法指定請求頭,比如img標籤,這種方式請求,無法指定請求頭,只能利用cookie預設上傳的特性,攜帶token
chrome控制台cookie的expires/max-age是用utc時間展示,所以會比實際時間早8小時,下圖的cookie實際過期時間是17:44:20,所以我們對cookie設定expires的時候,也要用utc時間
image.png
關於gmt utc cst等時間格式,詳見
chrome可以手動新增cookie,並且可以設定domain(正常來說無法跨域寫cookie),做爬蟲功能時可能需要這樣操作
image.png
為什麼CSRF Token寫在COOKIE裡面
最近做滲透測試的時候經常看到使用者的cookie資訊裡帶有csrf等字樣的資訊,問了一下同事,他們說這個是用來防禦csrf的字段。這一下可把我弄懵了,因為我對csrf的理解是 攻擊者盜用使用者的cookie執行非使用者本意的操作。我的想法是,使用者的cookie就像是一張門禁卡一樣,攻擊者可以盜用使...
前端 cookie,小餅乾
cookie 是前端中乙個小點,還是比較重要的。什麼是cookie cookie是儲存在你的計算機中的小型文字檔案中的資料。web 伺服器將網頁傳送到瀏覽器之後,連線將關閉,瀏覽器也將忘記使用者資訊。cookie 就是為了解決這個問題。當你再次開啟瀏覽器時,瀏覽器會從本地檔案讀取 cookie,這樣...
前端 nodejs之cookie入門
set cookie cookiename cookievalue expires domain path secure httponly 引數說明 1 expires 指定過期時間,以gmt格式表示的時間字串,如方法乙個的 timeobj 2 maxage 指定過期時間,同expires expi...