📜  什么是无状态服务器?

📅  最后修改于: 2022-05-13 01:56:12.736000             🧑  作者: Mango

什么是无状态服务器?

顾名思义,无状态服务器对于用户的信息是没有状态的。这意味着当用户访问任何网络资源时,服务器不会跟踪用户的身份或在页面上执行的操作。因此,每次,用户都必须证明身份才能获得访问权限。

与有状态服务器相比,让我们更好地理解它。有状态服务器以会话的形式存储用户的状态信息。它存储个人资料、偏好、用户行为等信息,并在下次访问时提供个性化体验。在有效会话期间,用户每次都不需要凭据。

而无状态服务器将每个请求视为独立的并要求用户凭据。它不需要先前交互的知识并且不存储会话信息。因此,上一个请求、当前请求和下一个请求之间没有区别。

无状态服务器的特点:

性能:服务器不受约束地维护和同步任何会话数据。因此它可以为用户提供任意数量的请求。它有助于通过经验获得更好的响应时间。

设计:这被认为是开发人员的优势,因为无状态服务器易于设计和编码,因为无需在后端动态维护存储单元。无状态身份验证使用 REST(代表性状态传输)来设计 Web API。

数据崩溃:由于服务器上没有存储数据,因此系统崩溃对 Web 资源的性能没有影响。用户可以通过重新认证来简单地恢复访问。 Stateless 在每个请求上使用不同的服务器。所以有一个横向扩展的范围。

技术:无状态服务器可以根据称为 Tokens 的唯一 ID 识别用户。令牌包含用户在收到秘密令牌后授予访问权限的基本信息。令牌的有效性取决于会话持续时间,或者一旦用户退出资源,它就会被销毁。这项技术被称为密码学,它将成为未来安全机制的主要驱动力。

无状态服务器如何工作?

用户访问网页,客户端界面在检测到用户时以凭据窗口响应。用户提供用户名、密码并提交以进行身份验证。服务器验证来自数据库的凭据并授予用户访问权限。服务器提供一个唯一的令牌来验证身份。下一个请求的用户可以使用令牌进入资源。这消除了服务器存储信息的需要。

在这里,身份验证的责任在于必须输入数字密钥才能获得访问权限的用户以及将密钥与信息匹配的数据库。信息存储在数据库中,而不是服务器中,因此客户端每次都必须使用凭据或令牌手动调用数据库。

识别用户的常用方法是通过存储在客户端的 JASON Web Token (JWT) / OAuth。这样,服务器依赖于用户的新请求,而不依赖于先前请求的信息。

结论:到目前为止,我们已经介绍了无状态模型的主要知识及其在确保数据安全方面的作用。 HTTP 被称为无状态服务器,因为它在每次访问时都需要用户的身份。因此,我们可以说无状态服务器是 Web 资源的一个现代方面,从安全角度来看,它更为关键。