cookie/session的关系
什么是cookie,session
我们平时去医院看病时,从进医院那一刻,我们最开始要做的就是挂号(需要我们填写表格,记录一些核心信息,医生会把这些信息录入电脑,并给我办一个就诊卡,卡里面只储存了一个id),当我们拿着这个就诊卡去对应的科看病时,比如我们去儿科,儿科医生就会拿着我的就诊卡,在电脑上面刷一下,电脑上面就会出现关于我对应的信息,并根据我的症状,给我开一些检查,然后我再拿着我的就诊卡去检验科,检验科也只需要刷一下卡,电脑就会出现我需要检查的科目。
这里本人就类似于cookie,就诊卡就相当于sessionid,电脑上的信息就相当于session。
cookie和session都是常用于客户端和服务器端储存和跟踪用户信息的机制,主要还是应用于Web开发中。
cookie介绍:
1.cookie的简介:
当用户在进行登录的时候,服务端会将登录的信息(文本信息,一般是JSON格式)返回给客户端,而客户端会储存这些信息,当下次客户端请求访问服务端的接口的时候,客户端会携带这些登录的信息。Cookie会被储存到请求标头中,是一个键值对信息文本,多个键值对使用,进行区分。
流程图如下:
2.Cookie的工作原理:
1.浏览器在登录的时候,服务端进行创建cookie,将携带信息的cookie返回给客户端。
2.客户端在接受到cookie后,会将cookie储存在本地(浏览器所在设备的内存或者硬盘)
3.浏览器再次进行请求服务端的时候,会进行携带cookie。
4.读取cookie,服务端进行接收到浏览器的请求的时候,会进行读取请求头中的cookie信息。
5.校验cookie中的登录态信息是否准确。
6.返回请求接口的数据的信息。
session的介绍:
1.Session简介:
session是服务端的储存机制,用来跟踪用户的状态,Session在用户和服务端建立连接后创建,并在用户退出或者Session超时后销毁,并且Session默认依赖于Cookie的。
默认使用Session实现登录的时候,储存到本地服务器中,借助cookie进行协同保存登录态。
Session是储存在服务器中的,当服务器如果宕机或者重启的话,原本在服务器生成的Session都会消失,如果基于本地服务器进行实现Session,此时的cookie请求过去的Sessionid就会失效。
2.Session的流程图:
2.Session的特性:
储存限制:Session是没有储存限制的,Cookie仅需要储存一个占用极小的Sessionid,Session中储存的登录态信息一般储存在服务端中,所以只要硬件足够强,就没有什么限制。
生命周期:Session的生命周期通常取决于会话的持续时间,可以在用户关闭浏览器依然保持,直到Session超时或者被显式销毁。
安全性:由于Session储存在服务端,因此相比于Cookie更加安全,但是Session的安全性,也来自于Sessionid的安全性。
Session和Cookie的区别:
1.储存位置:Session储存在服务端,Cookie储存在客户端浏览器。
2.储存大小:Cookie大小受限,Session理论上没有大小限制。
3.安全性:Session比Cookie更加安全一些。