专栏首页linux百科小宇宙软件开发|会话与 Cookie:用户登录的原理是什么?
原创

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN

    在Membership系列的最后一篇引入了ASP.NET Identity,看到大家对它还是挺感兴趣的,于是来一篇详解登录原理的文章。本文会涉及到Claims...

    用户1153966
  • Cookie和Session知识扫盲

    测试工作中我们经常会听到这两个词,作为测试一定要理解这两个概念,对于测试应用的接口、业务理解很有帮助。

    吾非同
  • 从SSO出发谈谈登录态保护

    在集团内进行开发时,通常会遇到不同组之间的合作,如果是同一个组的前后端,因为交互请求都是在同一个「域」内发生的,所以一般不会存在跨域问题。但如果未做处理,直接从...

    出其东门
  • Cookie、Session、Token那点事儿

    前言:新公司项目中使用到了Cookie,在各大Android技术讨论群向前辈们取经讨论这cookie、session、token这仨哥们的时候,很多开发者说法不...

    java思维导图
  • JavaWeb——会话技术之Session快速入门与验证码登录案例实战(Session实现原理、使用细节、快速入门、Session的特点)

    Session是服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中,HttpSession。

    Winter_world
  • JSP基础--会话跟踪技术、cookie、session

    我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话,你就是客户端,而1...

    eadela
  • IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    本文引用了简书作者“骑小猪看流星”技术文章“Cookie、Session、Token那点事儿”的部分内容,感谢原作者。

    JackJiang
  • 【网络】cookies的妙用

    答:看个人,我尽可能的用小白的角度去写这篇文章,如果看不懂,那就多读几遍,还是不懂的话,就别玩这个了,耐心的手动签到吧

    zby1101
  • cookie有什么作用?认证过程是怎样的?

    程序员在平时的工作中,往往会使用到多种编程工具以及方法,这些方法能够让软件系统开发,或者网络维护的过程变得更加高效与可靠,cookie是存储在用户终端设备里的数...

    用户8739990
  • Session、Cookie、Token 【浅谈三者之间的那点事】

    HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主...

    IT茂茂
  • 怎样实现登录?| Cookie or JWT

    先问小伙伴们一个问题,登录难吗?“登录有什么难得?输入用户名和密码,后台检索出来,校验一下不就行了。”凡是这样回答的小伙伴,你明显就是产品思维,登录看似简单,用...

    小忽悠
  • 详解 Cookie 纪要

    从事 Web 开发已有近17个月;在学以致用的工作学习里,对于不怎么使用的部分,多少有些雾里探花的窘迫感~差不多是了解一二,然而又非真切的明晰;这就使得再用的时...

    晚晴幽草轩轩主
  • 怎样实现登录?| Cookie or JWT

    先问小伙伴们一个问题,登录难吗?“登录有什么难得?输入用户名和密码,后台检索出来,校验一下不就行了。”凡是这样回答的小伙伴,你明显就是产品思维,登录看似简单,用...

    小忽悠
  • 详解 Cookie 纪要

    从事 Web 开发已有近17个月;在学以致用的工作学习里,对于不怎么使用的部分,多少有些雾里探花的窘迫感~差不多是了解一二,然而又非真切的明晰;这就使得再用的时...

    疯狂的技术宅
  • cookie详解

    今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://mp.weixin.qq.com/s/NXrH7R8y2Dqxs9...

    用户1214487
  • 【HTTP】客户端识别和cookie机制

    1.简单概括:web站点会对每个用户生成特定版本的url来追踪用户的得身份。客户端第一次请求服务端,服务端将客户的请求的url进行加工包装为一个胖的URL

    居士
  • 90%的程序员都没有完全回答对 Cookie 和 Session 的区别?

    我在做面试官的时候,曾经问过很多朋友这个问题: Cookie 和 Session 有什么区别呢?大部分的面试者应该都可以说上一两句,比如:什么是 Cookie?...

    纯洁的微笑
  • 负载均衡,会话保持,session同步

    一,什么负载均衡 一个新网站是不要做负载均衡的,因为访问量不大,流量也不大,所以没有必要搞这些东西。但是随着网站访问量和流量的快速增长,单台服务器受自身...

    Java架构师必看
  • 看完这篇 Session、Cookie、Token,和面试官扯皮就没问题了

    HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主...

    cxuan

扫码关注云+社区

领取腾讯云代金券