Session
Session 中文翻译结果为 会话,
session是一次浏览器和服务器的交互的会话
就是 从一个浏览器窗口打开到关闭这个期间
Session 在第一次被启用的时候,会创建一个session id 存储在本地cookie中
Eg: 比如某会所, 在原先没有会员卡管理系统的时候, 采用的是笔记本记录顾客会员信息, 会要求顾客填写 姓名, 以及手机号, 每次顾客报手机号, 会所就可用根据手机号查询到该客户的信息, 就可以进行消费,以及充值, 这个时候顾客所知道的就是他的手机号,**在session中可用理解为session id ,session会根据提供的id进行检索查询, 会所笔记本记录的信息,在session中可用理解为服务器端所记录的信息.**
cookie
cookie分为临时连接 和 持久性连接
临时的cookie 只在浏览器上保持一段规定的时间,一旦超过这个时间,则被清除
持续 cookie则保存在用户的文件中, 在下一次用户调用的时候,仍然可以对其进行调用
比如说在某些登录场景中,常常会遇到 7天内记住我, 记住密码, 或者记住账号等等 都是采用cookie来记录信息,
cookie是由服务器设置的, 存储在用户的文件中,但是HTTP协议是一种无状态的协议, 在数据交换完毕后,服务器端和客户端(浏览器)的连接就会关闭,每次数据交换都需要建立新的连接,
cookie 在客户端如果被清除, 则下次访问的时候需要重新生成新的cookie
Eg: 就好比如我们在某会所办了一张会员卡, 我们消费了多少,卡内余额还有多少, 点了什么套餐,会所都可以读取卡内信息进行查询,**会员卡所存储的信息就像是cookie存储在本地的信息,会所的后台就像是服务器端,Http协议就是交易消费的过程**.但是注意一点, 如果卡丢失, 且无法提供任何相关联信息,那么就无法进行余额,消费的查询
区别
>Session 是把数据存储在服务器端,会比较占用服务器资源
>Cookie 是把数据存储在浏览器端,可以长时间保留
针对cookie 存储在客户端, 就像是在访问一个网站的时候 服务器端给浏览器贴的小标签, 这个标签会记录浏览器上进行的操作, 用户在切换浏览器的时候cookie就会失效, 清理浏览器缓存的时候也可以被清除
针对session 则是 在服务器端保存 但是只执行一次 这个信息的话就像是 你跟他人打招呼, 你说你好, 他回复你一下你好, 然后就中断了, 称之为一次会话
由于cookie 采用的是在浏览器端存储,所以他人可以利用串改本地的cookie进行对服务器端的欺骗, 在安全性上面不如session.
但是也由于session是存储在服务器端的, 如果访问量增多, 会大量占据服务器性能.
session因为session id 的存在,通常要借助cookie实现, 但并非必要
>cookie 是一个实际存在的东西,http 协议中定义在 header 中的字段。
>可以认为是 session 的一种后端无状态实现。
领取专属 10元无门槛券
私享最新 技术干货