简单理解Cookie和Session的区别

一.什么是Cookie?

Cookie是保存在客户端的纯文本文件。比如txt文件。所谓的客户端就是我们自己的本地电脑。当我们使用自己的电脑通过浏览器进行访问网页的时候,服务器就会生成一个证书并返回给我的浏览器并写入我们的本地电脑。
Cookie通常用来保存一些信息,cookies的作用主要是,当你访问了某些网页,并且对网页的一些设置进行修改,cookies就能跟踪并记录到这些修改,当你下一次访问这个网页的时候,这个网页会分析你电脑上的cookies,进而采取措施像你返回更符合你个性化的网页

二.什么是Session?

服务器为了保存用户状态而创建的一个特殊的对象。在 无连接(HTTP)协议基础之上实现在用户状态管理。当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象

三.Cookie和Session区别

Cookie

  1. Cookie保存在客户端
  2. 每个浏览器都有Cookie,但Cookie不能跨浏览器访问
  3. Cookie的数据是暴露在浏览器的,所以不那么安全
  4. 可以设置Cookie的secure属性为true,让浏览器只会在HTTPS和SSL等安全协议中传输此类Cookie
  5. Cookie存储数据的大小有限制,一般最大4k
  6. Cookie随着浏览器的关闭而消失

Session

  1. Session保存在服务端,当浏览器第一次访问服务器时,服务器创建一个session对象(该
    对象有一个唯一的id,一般称之为sessionId),服务器会将sessionId
    以cookie的方式发送给浏览器。当浏览器再次访问服务器时,会将sessionId发送过来,服务器依据
    sessionId就可以找到对应的session对象。
  2. 由上述可知,Session安全性更高
  3. Session由于存储在服务端,大小无限制
  4. Session由服务器端控制,当用户关闭了浏览器,session并不会消失

四.为什么Cookie不安全?

举个例子:
当用户在浏览器上登录一个网站,浏览器会存储这个网站的Cookie,里面携带了用户登录的账号密码等信息,发送给服务器,服务器通过接收Cookie传进来的信息,验证登录,然后返回数据或信息给客户端,然后登陆成功。
此时用户的账号密码已经存在Cookie中,是可以通过控制台看到的。如果有人想做坏事,去拿到用户的账号密码,此时就可以通过一些代码去获取已经存在的Cookie,然后去另一个浏览器存入这些Cookie,这个浏览器识别到Cookie中已存在的账号信息,只需要刷新一下,账号就登陆了。
但这个问题肯定也有人考虑到:
如果Cookie是勾上了HttpOnly,这时就只能通过http来访问Cookie,但仍然存在服务端没有给这个设置的问题
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44862029/article/details/123796386
今日推荐