什么是无状态服务器?

2025年1月29日 | 阅读 4 分钟

引言

无状态服务器不保存任何关于用户及其信息的数据。这意味着每次用户访问任何 Web 资源时,服务器都无法查看用户的私人数据或其在页面上执行的操作。因此,用户在每次身份验证尝试之前都必须验证身份。

让我们从无状态服务器操作的角度来回顾一下。有状态应用程序服务器以会话的形式保存用户的会话信息。它将访问者的个人资料、偏好和操作相关数据保存在其内存中,并为下次访问定制体验。在有效会话期间,用户不必每次都输入其凭据。

另一方面,无服务器使其自身无状态并需要用户凭据。它不需要任何先前对话的历史记录,并且不存储任何基于 cookie 的会话信息。因此,早期、当前和未来的请求之间没有区别。

What is a stateless server?

无状态服务器的特性

  • 性能优势: 无状态服务器的效率来自于它们无需处理客户端请求的会话数据。这反过来使它们能够管理任意数量的客户请求,从而改善了它们的响应时间。
  • 简化设计: 无状态服务器的基本结构减少了开发人员的工作量,因为他们不再需要从后端管理用户状态存储。它们本质上是无状态的,并使用 RESTful API。
  • 容错性: 所有数据都直接存储在用户的设备中,这意味着即使服务器崩溃,Web 资源也不会工作。用户只需重新验证即可再次获得访问权限。对于每个请求,可以使用不同的服务器实例,这是水平扩展的基础。每个服务器实例都可以接受提供容错能力的请求。
  • 可伸缩性: 无状态服务器的每个请求都使用不同的实例,这成为此功能可伸缩性的基础。有水平扩展的空间,这涉及到添加更多适合处理更高负载的服务器节点。
  • 通过令牌进行身份验证: 在这些无状态环境中,用户通过包含用户信息的唯一令牌进行身份验证。在接收并验证用户令牌后,服务器授予对必要资源的访问权限。令牌的有效期要么通过会话超时,要么在用户注销时有意识地撤销。
  • 通过密码学实现安全性: 无状态服务器的后端基于密码学技术。密码学被视为未来系统身份验证中提高安全性的关键推动者。由于安全性的提高,无状态服务器中的基于令牌的身份验证优于传统的服务器会话管理。

无状态服务器的工作原理

用户访问网站,并通过客户端计算机(用户设备)请求登录。服务器端提供用户名和密码字段。通过输入这些凭据,用户将其发送给相应的服务器。

服务器开始运行,从其存储的数据库中尝试用户名和密码。如果它们一致,服务器将授予访问权限,并向用户设备发送一个特殊令牌,该令牌不能被其他网站使用。

因此,用户不再提供登录名和密码,而是他们的计算机再次发送令牌代码。服务器验证令牌的有效性。换句话说,该系统推断用户可以在网站上浏览其特定区域的本机功能。通过使用令牌,服务器不必维护用户的会话或登录信息,因此即使发生安全漏洞,其帐户也不会受到损害。在这种情况下,用户有责任发送有效令牌,并且帐户数据库有责任检查令牌是否真正有效。

但是,实现方式可以不同,例如使用 JSON Web 令牌 (JWT) 或 Oath,这些是用户存储在其计算机上的代码字符串。由于服务器需要审查的每个新应用程序,服务器不会加密新的会话数据,而是只关注用户提供的令牌代码。

这种基于令牌的方法意味着

  • 服务器在处理较小数据时没有内存泄漏。
  • 多服务器以及扩展过程几乎是即时的,使其变得如此简单。
  • 服务器故障没有数据存储,因此影响会非常低,因为其他服务器中保留了相同的数据。

因此,无状态服务器中的服务器身份验证模型在各种原因上优于传统模型,例如更高的可伸缩性、容错性和简单性,因为它们消除了存储用户会话的需要。

结论

我们讨论了无状态模型的关键要素以及在此过程中对数据安全性的考虑。HTTP 或 HTTPS 是无状态协议,因为它们要求用户每次访问时都提供身份。因此,我们在提供安全方面时考虑的 Web 资源的新版本称为无状态服务器。


下一主题什么是冷备用