cookie、sessions、localstorage、sessionstorage、Cache-Control

cookie?

1. 服務器通過 Set-Cookie 響應頭設置 Cookie

response.setHeader('set-cookie','key:value')


2.瀏覽器(前端)得到的響應頭里的 cookie,之后每次請求都會帶著cookie

cookie:id;


3.?服務器通過讀取 Cookie 就知道登錄用戶的信息

request.header.cookie? //? 然后對比數據庫驗證用戶信息

由于直接使用cookie, 會很容易的被用戶偽造cookie,所以引出sessison來解決這個問題

cookie = new Cookie("cookiename","cookievalue");

//設置Cookie最大生存時間,以秒為單位,負數的話為瀏覽器進程,關閉瀏覽器Cookie消失?

cookie.setMaxAge(3600);

//設置cookie過期時間為1個小時

cookie.setPath("/");

//設置路徑,這個路徑即該工程下都可以訪問該cookie 如果不設置路徑,那么只有設置該cookie路徑及其子路徑可以訪問?

response.addCookie(cookie);

// 將Cookie添加到Response中,使之生效

setCookie(name, "", -1);//刪除一個cookie, 讓 setCookie函數的第二個參數為空就會刪除這個name coikie


sessions

1. 在服務器創建一個對象?

sessions = []

sessionsID? = Math.random*100000? ? //使用一個隨機數當用戶的sessionsID

sessions[sessionsID] = 用戶信息? ?//把這個ID放入后臺臨時數據庫(sessions對象)中

response.setHeader('set-cookie',?sessionsID )


2.瀏覽器(前端)得到的響應頭里的 cookie,之后每次請求都會帶著cookie

cookie: sessionsID;


3.?服務器通過讀取 Cookie 就知道登錄用戶的信息

request.header.cookie? //? 然后對比數據庫驗證用戶信息


與直接使用cookie相比,用sessions隨機數生成ID暴露給前端隨機數,顯得更加安全

localstorage

一個?Storage?可被用于訪問當前遠端( origin )的本地存儲空間的對象.

LocalStorage 跟 HTTP 無關,localstorage永久有效,除非用戶清理緩存,每個域名 localStorage 最大存儲量為 5Mb 左右,

只有相同域名的頁面才能互相讀取 LocalStorage

具體的集中使用方法

localStorage.setItem('myCat', 'Tom'); //設置,為本地storage對象添加一個key,value.

var cat = localStorage.getItem("myCat");//讀取localstorage對象的“ myCat ”的?value

localStorage.removeItem("myCat");//移除一個key及value


sessionstorage

localstorage相同,唯一不同點是SessionStorage 在用戶關閉頁面(會話結束)后就失效。


Cache-Control

通過設置Cache-Control時間,讓相同的url時瀏覽器會在這個時間內,阻斷請求,利用緩存加載,達到性能優化目的。

//后端設置響應頭

response.setHeader('Cache-Control','maxage-600')? ?// 相同的url 600S內不請求


Expires

?與Cache-Control功能一樣,不同點是Cache-Control是設置多長時間后過期。Expires是直接設置一個過期的日期,格式為GMT


MD5

Message Digest Algorithm MD5(中文名為消息摘要算法第五版)為計算機安全領域廣泛使用的一種散列函數.


ETag

//后端設置響應頭

response.setHeader('ETag',md5)?

//客戶端收到響應頭

//會有ETag:? '當前文件MD5'

//同一個文件客戶端下一次請求時會帶上

IF-None-Math:"當前文件MD5"

//后端收到請求會進行對比MD5,如果相同代表不需要更新。


Cache-Control, Expires ,ETag的區別

Cache-Control,?Expires是通過設置時間讓瀏覽器阻斷請求,ETag是沒有阻斷請求,是后端驗證MD5是否改變來做出相應的響應。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本文主要學習一下一些高級的HTTP知識,例如Session LocalStorage Cache-Control ...
    吳少在coding閱讀 1,321評論 0 3
  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,440評論 6 152
  • 本文整理自MIN飛翔博客 [1] 1. 概念 協議是指計算機通信網絡中兩臺計算機之間進行通信所必須共同遵守的規定或...
    HoyaWhite閱讀 2,706評論 2 20
  • 素如果能美過妝那說明本質美!內在外在過多的技巧元素可以修飾美,但不是本質美!優雅的美也離不開素! 生活...
    研究說明書閱讀 228評論 0 0
  • 有許多話,想說,不想說,最終把它打成文字,記錄下來,作為憑據,可以和時光對峙 想起來最喜歡的鋼琴曲,久石讓,翻譯成...
    李雲笙閱讀 335評論 0 4