cookie概念:
Cookie由服务器端生成,发送给user-Agent(一般是浏览器,服务器告诉浏览器设置一下cookie),浏览器会将cookie以key/value保存到某个目录的文本文件内,下次请求同意网站时就发送该cookie给服务器(前提是浏览器设置为启用cookie)cookie通过HTTP请求报文和响应报文配合完成。(cookie是浏览器提供的一种机制,可以由js对其进行控制,而不是js本身的性质)。
cookie 的不可跨域名性
cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名。cookie可以跨越同一个域名下的多个网页,但不能跨越多个域名使用。
cookie 的缺点
- cookie体积过大会造成请求和响应速度变慢。
- 默认浏览器会任何请求都把cookie带上去,哪怕是静态资源。
- cookie可以在前后端修改,数据容易篡改或伪造。
- cookie对于敏感数据的保护基本是无效的。
- 有些用户是禁用掉cookie的
Session概念:
web应用程序中还经常使用session来记录客户端的登录状态。不同于cookie,session保存在服务器上。session相当于程序在服务器上建立一份客户档案,客户来访时只需要查询客户档案表就可以了。
cookie和session的区别
- session 保存在服务器,客户端不知道其中的信息;cookie 保存在客户端,服务器能够知道其中的信息。
- session 中保存的是对象,cookie 中保存的是字符串。
- session 不能区分路径,同一个用户在访问一个网站期间,所有的session在任何地方都可以访问到。而 cookie 中如果设置了路径参数,那么同一个网站不同路径下的 cookie 互相是不可以访问的。
- cookie 不是很安全,本人可以分析存放在本地的 COOKIE 并进行 COOKIE欺骗
- session 会在一定时间内保存在服务器上。当访问增多,会占用你服务器的性能。考虑到减轻服务器性能方面,应该使用 COOKIE。
- 单个 cookie 保存的数据不能超过 4k ,很多浏览器都限制一个站点最多保存 20 个 cookie。
- session 是通过 cookie来工作的。
Webstorage:1.localstorage 2.sessionstorage
Localstorage:永久的,除非手动删除
Sessionstorage:临时的,窗口关闭就没有了。(会话级别)
webStorage 的优势
- 从容量上讲WebStorage一般浏览器提供5M的存储空间。
- 安全性上WebStorage 并不作为 HTTP header 发送的浏览器,所以相对安全。
- 从流量上讲,因为WebStorage不传送到服务器,所以不必要的流量可以节省。
Cookie和webstorage区别
Cookie防篡改的措施
手法: set-cookie时加上防篡改验证码。
如: user_name=alex|bj95ef23cc6daecc475de
防篡改验证码的生成规则可以很简单:md5(cookieValue+key)或sha1(cookieValue+key),key可以是服务器端掌握的一个固定字符串