你好,我是前端西瓜的哥哥。
很多初学者不知道Session和Cookies的区别,今天带着西瓜哥哥来掌握这两个概念。
进入登录网站的表象网站的登录页,输入用户名和密码,然后单击“登录”按钮,登录成功。 然后,可以进行需要登录的操作,比如称赞西瓜哥哥的文章。
之后,打开此网站,就不需要输入用户名和密码了。
其实是因为你在用“看不见”用户凭证。 它被缓存在当前浏览器中,在它过期之前保持登录状态。
如果要打开另一个浏览器或在另一台计算机上打开它,则必须再次执行登录过程以获取用户证书并实现登录状态。
上面行为的底层发生了什么呢?
Session当用户向服务器发送用户名和密码时,服务器从用户表中确认用户名与密码一致。
user用户表可能如下所示:
user_id user_name password
请参见------------------------------------------------------- -
前端西瓜哥kksk456
如果watermelon ou114514用户名和密码正确,则会生成随机id作为用户证书,并存储在映射表中,以映射到相应的用户id。
可以保存在数据库中。
session_id user_id
----------------
kdj1231j也可以保存在存储器或redis等可高速访问的存储介质中。
此外,session_id在映射表中不能具有相同的值。 否则,张三就会注册得到李四的号码。
将这些用户证书(Session_id )存储在用户id中的映射存储称为session。
Session在会话的意义上,可以记录状态。 两人开始对话后,对话的时候,我们互相了解,但对话结束时,我们形同虚设。
已创建Cookiessession_id。 然后,将此sesson_id传递给浏览器,保存在浏览器中,并在每次后续请求时将此session_id带到浏览器中,以便服务器可以识别用户。
但是,浏览器的请求是基于HTTP协议,该协议的特点之一是无状态也就是说,实现协议时,不可能知道对方是谁,任意两个请求是独立的,一个请求的发布这样的话,就很难维持登录状态。
为了解决这个问题,出现了Cookies。 Cookies可以存储服务器返回的一部分信息,并在随后的请求中携带它。
服务端在HTTP响应标头字段中携带Set-Cookie字段,并按如下方式携带要设置的键值对和有效期等其他信息:
set-cookie : session _ id=kdj 1231 j; Max-Age=10000000当浏览器接收时,它将保存在浏览器中。 对于的每个请求,浏览器都会在HTTP请求标头中带来session_id信息。
Cookie: session_id=kdj1231j; 服务端取出session_id去session映射表中查找。
如果存在,我们将检索其用户id,根据该用户id获取您的银行余额等个人信息。
结尾Session是一个将用户证书(sesson_id )映射到用户id的映射表,用于通过用户证书标识用户。
Cookies是一种可用于在HTTP协议中存储状态的惊喜甜点,它可以存储从服务器返回的部分数据,并通过以下请求进行携带:
文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系多特删除。(联系邮箱:[email protected])
近期热点
最新资讯