cookie學習

基本通訊過程:

設置cookie -----cookie被自動添加在require header中--服務端收到cookie瀏覽器

cookie是什麼

cookie是存儲在瀏覽器中的純文本,瀏覽器的安裝目錄下會專門有一個cookie文件夾存放各個域下設置的cookie安全

發送請求時,瀏覽器會自動檢查是否有相應的cookie,若是有則自動添加在require header中cookie

什麼樣的數據適合放在cookie中?

存儲在cookie中的數據在每次發送請求的時候都會自動放在http請求中,若是這些數據不是每一個請求都須要發給服務端的,那麼這些cookie會增長網絡開銷;若是是,就會大大免去重複添加操做;因此 對於每次請求都要攜帶的信息就適合放在cookie中網絡

有限制: 4Kb 數量最多20個session

cookie的格式

  • expries/max-age:

expries: http/1.0協議中的選項,必須是GMT格式(經過new Date().toGMTString()或new Date().toUTCString()),默認有效期是session,即會話cookie,瀏覽器關閉後銷燬dom

Max-age: http/1.1協議中,以秒爲時間單位,值爲: 負數 0 整數, 負數表明有效期爲session,0表明刪除,正數表明有效期爲建立時間+max-agexss

  • domain和path:

domain+path=url,限制cookie被哪些URL訪問ui

  • secure

設置cookie只在確保安全的請求中才發送,如https協議或其餘安全協議中,默認是cookie不會帶secure選項編碼

在客戶端這隻secure時,需是https協議url

  • httponly:

設置是否能經過js訪問,默認狀況下,此項爲空,js能夠進行訪問(讀 刪 修)

若是爲true,這類cookie客戶端沒法設置,只能經過服務端設置

目的: 保障安全,避免遭受xss攻擊

如何設置cookie

服務端: set-cookie

客戶端: docunment.cookie 注意客戶端設置secure有條件(只有在https協議的網頁中才能成功) 且不能設置httponly

修改: 從新賦值

刪除: 設置過去時間點

編碼: cookie爲字符串,其中的空格 分號 逗號會被當作特殊字符,須要進行編碼.通常採用encodeURIComponent/decodeURIComponent或者encodeURI/decodeURI

相關文章
相關標籤/搜索