cookie和session的区别,个人理解

cookie和session的区别

今天在刷牛客网前端面试题库时,突然看到一个问题,cookie和session的区别?说实话这个我还真没想过,可是牛客网给的解释却很模糊。看的我一头雾水

cookie和session的区别,个人理解_第1张图片然后特地去分别查了一下cookie和session。

什么是cookie?

Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),(服务器告诉浏览器设置一下cookie),浏览器自动会将Cookie以key/value保存到某个目录下的文本文件内,下次请求同一网站时也会自动发送该Cookie给服务器,即添加在请求头部(前提是浏览器设置为启用cookie)。

说人话就是,Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。而cookie就是能保存一些必要信息,让我们下一次请求时,服务器直接从cookie中读取信息验证我们的身份。也就是说,你登录一个网站,下次登陆就不用再输入账户密码了。

那么问题来了,什么时session呢?

什么是session?

在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。

说人话就是,session的出现还是因为HTTP是无状态的。先解释一下session的作用。当你访问服务器的时候,再你的浏览器中打开某个页面,这时候服务器会自动生成一个空间存放你的session,记录你的信息,这样的话,你再跳转页面后,服务器就能通过session获得你的信息。好比说,你再登录一个网站后,进入首页或者进入其他页面,服务器还是能知道你的信息。

那么cookie和session究竟有什么区别呢?

1.存放位置不同,cookie是存在你的本地的,而session是存在服务器上的

2.第二个不同就要用到牛客网解释里提到的session id了,session id又是什么呢?字面意思就是服务器中每个session都有的一个独特的id。这样能保证服务器知道你是哪个页面对于的session。而session id是可以通过cookie实现的,将session id存放在cookie中。

总结

session是服务器端用于验证用户权限的一把钥匙,存于服务端,在进行数据交互时使用的,我们经常遇到的登录失效这一类场景,就是因为session在中间起到了作用。
cookie是保存在本地的数据,可以简单地理解,在页面中输入账号,自动弹出密码,这个密码之所以会弹出就是因为本地cookie的原因,包括历史记录这些,之所以会有记录,就是因为内容存储在本地的cookie文件中。

你可能感兴趣的:(cookie和session的区别,个人理解)