前面我已經寫了一篇關於Cookie的文章,可是那時候我其實理解的並非很深入,會有些搞不懂的地方,今天我就再寫一次,博客也是個人學習筆記前端
Cookie是服務器發送到用戶瀏覽器並保存在本地的一小塊數據,它會在瀏覽器下次向同一服務器再發起請求時被攜帶併發送到服務器上。一般,它用於告知服務端兩個請求是否來自同一瀏覽器,如保持用戶的登陸狀態。Cookie使基於無狀態的HTTP協議記錄穩定的狀態信息成爲了可能。git
Cookie的設置是在服務端來操做的,用戶訪問服務器,服務器響應中響應頭帶上瀏覽器
response.setHeader('Cookie', 'Max-Age=<non-zero-digit> ')//設置過時時間
就像上面Cookie的特性中的二、3條說的,Cookie並不安全,由於Cookie若是包含着重要信息被人記錄或者篡改,那就能夠對用戶的帳戶進行操做,因此爲了改善這一個問題,就要用到接下來講的Session安全
一、服務器經過Set-Cookie頭給客戶端一串字符串
二、客戶端每次訪問相同域名的網頁時必須帶上這段字符串
三、客戶端要在一段時間內保存這個Cookie
四、Cookie默認在用戶關閉時過時,後臺能夠設置Cookie存在時間
五、能夠在控制檯的Application中強制刪除Cookie服務器
Session並非HTTP協議中的一部分,Session是一個抽象的概念,是用來解決Cookie來標識用戶而泄漏隱祕信息的一種方法,而且由於實現了中斷和繼續操做而叫‘會話’併發
從上面能夠看出,Session最大的缺陷就是佔服務器的內存學習
一、將SessionId(通常就是一個隨機數)經過Cookie發給客戶端
二、客戶端訪問服務器時,服務器讀取SessionId
三、服務器有一塊內存(對象)保存了全部的Session
四、痛毆SessionId咱們能夠獲得對應用戶的隱私信息,如id,email
五、這塊內存(哈希)就是服務器上的Session加密
從上面的內容中就能夠發現,Session和Cookie的區別很大
首先Cookie是HTTP協議中的一部分,而Session是一個抽象的概念
而後Session是存放在服務器的內存中,而Cookie是存放在本地
最後Session通常是依賴於Cookie的,SessionId是經過 Cookie 發送給客戶端的code
LocalStorage是HTML5提供的新的API,LocalStorage也是一個哈希,是一個存在瀏覽器上的哈希對象
用戶設置的使用方法
localStorage.setItem('a', '1')
用戶如何獲取存的對象
localStorage.getItem('a')
用戶如何清理
localStorage.clear()
一、二、三、4條同上,可是SessionStorage在用戶關閉頁面後就失效了
從上面也能夠看出
因爲歷史遺留問題,之前全部信息都放到Cookie中,可是每次請求都要帶上Cookie,所以會上傳不少無用的東西,影響速度,所以做爲一個前端不要讀寫Cookie
正式學習前端已經快三個月了,一步步深刻就總感受本身學的不夠,本身很垃圾,可是幸虧我能感受到我有東西能夠學,因此,在沒學完的那一刻,我是不會停下來的,加油