Session和Cookie的异同点
- 不管是session还是cookie,在服务端的response都是一个Set-Cookie字段,然后客户端下次提交时,都是一个Cookie字段。
- session信息是存在服务器端的
- 因为session信息在服务器,所以当用户把浏览器关闭之后,下次打开浏览器时,是没有cookie信息的(登录失败)
- 所以关闭进程(浏览器)或者服务器设置的cookie时间过期了,这个时候cookie才会失效
- 因为session信息在服务器,所以当用户把浏览器关闭之后,下次打开浏览器时,是没有cookie信息的(登录失败)
- cookie信息是服务器给浏览器,然后浏览器存在本地的
- 因为cookie信息在本地,所以就算现在把浏览器给关掉,下一次打开再请求服务器的时候,也会带上cookie信息过去。也就是自动登录成功了
- 所以如果删除本地的cookie信息文件或者服务器设置的cookie时间过期了,这个时候cookie才会失效
- 因为cookie信息在本地,所以就算现在把浏览器给关掉,下一次打开再请求服务器的时候,也会带上cookie信息过去。也就是自动登录成功了
为什么session比cookie要安全?
- session的键值都是存储在服务端的,返回给用户的仅仅是sessionID,具体的session值对于用户(客户端)来说是完全未知的
- cookie的键值是服务器设置好之后,返回给用户(客户端),并且客户端会保存在本地,所以对于用户(客户端)来说是完全已知的。那么用户就可以根据cookie的键值来反向推测服务器对于cookie的使用逻辑,进而进行cookie的伪造。
来源于B站一个Up主的视频讲解,很赞!