cookie和session, cookie和webStorage的区别

时间:2022-08-26 08:14:17

cookie概念:

Cookie由服务器端生成,发送给user-Agent(一般是浏览器,服务器告诉浏览器设置一下cookie),浏览器会将cookie以key/value保存到某个目录的文本文件内,下次请求同意网站时就发送该cookie给服务器(前提是浏览器设置为启用cookie)cookie通过HTTP请求报文和响应报文配合完成。(cookie是浏览器提供的一种机制,可以由js对其进行控制,而不是js本身的性质)。

cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名。cookie可以跨越同一个域名下的多个网页,但不能跨越多个域名使用。

  1. cookie体积过大会造成请求和响应速度变慢。
  2. 默认浏览器会任何请求都把cookie带上去,哪怕是静态资源。
  3. cookie可以在前后端修改,数据容易篡改或伪造。
  4. cookie对于敏感数据的保护基本是无效的。
  5. 有些用户是禁用掉cookie的

Session概念:

web应用程序中还经常使用session来记录客户端的登录状态。不同于cookie,session保存在服务器上。session相当于程序在服务器上建立一份客户档案,客户来访时只需要查询客户档案表就可以了。

cookie和session的区别
  1. session 保存在服务器,客户端不知道其中的信息;cookie 保存在客户端,服务器能够知道其中的信息。
  2. session 中保存的是对象,cookie 中保存的是字符串。
  3. session 不能区分路径,同一个用户在访问一个网站期间,所有的session在任何地方都可以访问到。而 cookie 中如果设置了路径参数,那么同一个网站不同路径下的 cookie 互相是不可以访问的。
  4. cookie 不是很安全,本人可以分析存放在本地的 COOKIE 并进行 COOKIE欺骗
  5. session 会在一定时间内保存在服务器上。当访问增多,会占用你服务器的性能。考虑到减轻服务器性能方面,应该使用 COOKIE。
  6. 单个 cookie 保存的数据不能超过 4k ,很多浏览器都限制一个站点最多保存 20 个 cookie。
  7. session 是通过 cookie来工作的。
    Webstorage:1.localstorage 2.sessionstorage
    Localstorage:永久的,除非手动删除
    Sessionstorage:临时的,窗口关闭就没有了。(会话级别)
webStorage 的优势
  1. 从容量上讲WebStorage一般浏览器提供5M的存储空间。
  2. 安全性上WebStorage 并不作为 HTTP header 发送的浏览器,所以相对安全。
  3. 从流量上讲,因为WebStorage不传送到服务器,所以不必要的流量可以节省。
    Cookie和webstorage区别
    cookie和session, cookie和webStorage的区别

Cookie防篡改的措施

手法: set-cookie时加上防篡改验证码。
如: user_name=alex|bj95ef23cc6daecc475de
防篡改验证码的生成规则可以很简单:md5(cookieValue+key)或sha1(cookieValue+key),key可以是服务器端掌握的一个固定字符串