Cookie,Session是如何保持登录状态的?
怎么让服务器知道某个用户已经登陆过了,自然的能想到可以在服务器专门存储一个字段,只要账号和密码登录成功了就在这个字段设为1表明 “吴亦凡登录成功”,但是这样还有一个问题,因为HTTP不会表示某个请求确实就是吴亦凡发送的请求,所以还需要做点工作让服务器知道“这是吴亦凡发送的请求”,才能让服务器去存下来的登录状态里读取字段。
实际的做法就是利用了cookie和session,当浏览器第一次发送请求给服务器时,服务器会创建cookie,设置cookie的一些key value比如账户,过期时间等,还会将sessionid存储到cookie中然后将cookie返回浏览器,存储在用户本地,而sessionid唯一标识了一次会话,也产生了一段存储空间由sessionid唯一标示,这样假如服务器端断电重启后,浏览器发送请求时携带cookie标识了“吴亦凡发起的请求”,并且cookie携带了sessionid,通过sessionid可以查询到吴亦凡登录状态为1,所以可以保持登录链接。
以上内容是自己学习积累的一些总结,希望有错误的或者需要改进的地方能加以指出。
参考链接: cookie和session:www.jianshu.com/p/9a561b36e…
cookie和session保持登录状态:www.jianshu.com/p/415bc25ff…