前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软件开发|会话与 Cookie:用户登录的原理是什么?

软件开发|会话与 Cookie:用户登录的原理是什么?

原创
作者头像
用户8710643
修改2021-07-12 10:34:30
8380
修改2021-07-12 10:34:30
举报
文章被收录于专栏:linux百科小宇宙linux百科小宇宙

Facebook、Gmail、Twitter是我们每天都会用的网站(LCTT译注:才不是呢)。它们的共同点在于都需要你登录进去后才能做进一步的操作。只有你通过认证并登录后才能在twitter发推,在Facebook上评论,以及在Gmail上处理电子邮件。

那么登录的原理是什么?网站是如何认证的?它怎么知道是哪个用户从哪儿登录进来的?下面我们来对这些问题进行一一解答。

用户登录的原理是什么?每次你在网站的登录页面中输入用户名和密码时,这些信息都会发送到服务器。服务器随后会将你的密码与服务器中的密码进行验证。如果两者不匹配,则你会得到一个错误密码的提示。如果两者匹配,则成功登录。

登录时发生了什么?登录后,web服务器会初始化一个会话session并在你的浏览器中设置一个cookie变量。该cookie变量用于作为新建会话的一个引用。搞晕了?让我们说的再简单一点。

会话的原理是什么?服务器在用户名和密码都正确的情况下会初始化一个会话。会话的定义很复杂,你可以把它理解为“关系的开始”。

认证通过后,服务器就开始跟你展开一段关系了。由于服务器不能象我们人类一样看东西,它会在我们的浏览器中设置一个cookie来将我们的关系从其他人与服务器的关系标识出来。

什么是Cookie?cookie是网站在你的浏览器中存储的一小段数据。你应该已经见过他们了。

当你登录后,服务器为你创建一段关系或者说一个会话,然后将唯一标识这个会话的会话id以cookie的形式存储在你的浏览器中。

什么意思?所有这些东西存在的原因在于识别出你来,这样当你写评论或者发推时,服务器能知道是谁在发评论,是谁在发推。

当你登录后,会产生一个包含会话id的cookie。这样,这个会话id就被赋予了那个输入正确用户名和密码的人了。

也就是说,会话id被赋予给了拥有这个账户的人了。之后,所有在网站上产生的行为,服务器都能通过他们的会话id来判断是由谁发起的。

如何让我保持登录状态?会话有一定的时间限制。这一点与现实生活中不一样,现实生活中的关系可以在不见面的情况下持续很长一段时间,而会话具有时间限制。你必须要不断地通过一些动作来告诉服务器你还在线。否则的话,服务器会关掉这个会话,而你会被登出。

不过在某些网站上可以启用“保持登录”功能,这样服务器会将另一个唯一变量以cookie的形式保存到我们的浏览器中。这个唯一变量会通过与服务器上的变量进行对比来实现自动登录。若有人盗取了这个唯一标识(我们称之为cookiestealing),他们就能访问你的账户了。

结论我们讨论了登录系统的工作原理以及网站是如何进行认证的。我们还学到了什么是会话和cookies,以及它们在登录机制中的作用。

我们希望你们以及理解了用户登录的工作原理,如有疑问,欢迎提问。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档