前面我已经写了一篇关于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
正式学习前端已经快三个月了,一步步深刻就总感受本身学的不够,本身很垃圾,可是幸亏我能感受到我有东西能够学,因此,在没学完的那一刻,我是不会停下来的,加油