我认为我的问题的答案是如此简单,以至于我的问题甚至没有答案哈哈:
用户身份验证/用户帐户的概念如何运作?例如,某个网页如何知道在登录时提取您的信息而不是其他人的信息?它真的只是一堆带有用户标识 where 子句的 select 语句来拉回信息吗?
最佳答案
当您连接到网站时, session cookie 会放置在您的浏览器中。这可以唯一标识您,以便网站从请求到请求、页面到页面都知道您是同一个人。在服务器的某个地方,存储了这个 session cookie 中的 ID。服务器知道你在那里。当您点击链接时,服务器知道您是生成该链接所在页面的同一个人。
当您登录时,程序员会根据数据库(或他用于用户身份验证的任何内容)验证您的用户名和密码,然后将某种用户 ID 存储在服务器上,并从您的 cookie 附加到您的 session ID。现在,每当您请求页面时,程序员都会检查服务器上是否有与您的 session ID 相关联的用户 ID,然后知道您已经登录。这很常见,当您登录时的第一件事in,因为有一堆选择语句来加载您的用户信息,任何新消息等。这样,它可以显示在页面顶部。
例如,在 StackOverflow 上,这将是您的姓名、声誉、徽章数量以及您是否有新消息。
网站永远不会混淆,因为 cookie 永远不会重复。每当有人在没有 cookie 的情况下访问该网站时,就会生成一个新值并在响应中发送给用户。然后,此后的每个请求,浏览器都会将 cookie 值一起发回。假设服务器没有使用 IP 地址来验证 session cookie,则不可能知道(而且几乎不可能猜测)任何其他用户的 cookie ID。无论如何,对于程序员来说,这一切都发生在“幕后”。程序员通常只是访问某种 session 数据存储库,他们可以在其中存储和检索跨页面加载有效的信息。只要用户不清除他的缓存或重新启动他的浏览器, session 数据将可用并且对该用户是唯一的。
关于java - 用户身份验证和用户帐户 - 基本编程技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3662438/