问题标签 [stateless]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
1175 浏览

http - 以 RESTful 方式对网页用户进行身份验证的首选方法是什么?

我正在开发一个新的实验性 Web 应用程序框架,我决定给 RESTful 一些关注。我已经阅读了基础知识,并且觉得我对 RESTful 作为一个概念有了很好的理解。

我已经启动并运行了一个系统,严格使用 URL 来定义系统中的“名词”,并从 HTTP 请求方法中获取“动词”。我正在使用 javascript ajax 调用来提供对 HTML 表单无法提供的 DELETE 和 PUT 方法的访问。(我意识到这些措施并不严格要求是 RESTful,但它满足“统一接口”的要求)。

问题在于身份验证的无状态性和可缓存性。网站上用户身份验证的标准模型涉及“登录”身份验证事件,之后(如果成功)用户将通过持久的安全会话“在墙内”,并且可以在后续请求中看到和执行未经身份验证的用户可能看不到的事情。这种身份验证的持久性似乎打破了 RESTful-ness。缓存和无状态似乎被破坏了,因为经过身份验证的用户可能会看到与未经身份验证的用户在同一请求中看到的 HTML 不同(例如,侧边栏中可能有一个登录表单,用于登录 -出用户)。

使用 www-authenticate 策略仅在需要身份验证的请求上对用户进行身份验证似乎是朝着正确方向迈出的一步,因为它不涉及持久安全会话的概念。然而,仍然存在如何向最终用户描绘“登录”外观以符合我们对网站的期望的问题。

那么在目前的想法中,以严格的 RESTful 方式处理网页的身份验证和许可的首选方式是什么,同时仍然允许在 HTML 中进行登录装饰?

0 投票
1 回答
491 浏览

session - Castle ActiveRecord 可以打开无状态会话吗?

真正简单的问题:Castle ActiveRecord 可以打开无状态会话吗?如果是这样,我会怎么做?如果没有,如果没有它,我将如何打开无状态会话?

0 投票
8 回答
23218 浏览

java - 无状态会话 Bean 与单例会话 Bean

Java EE 6 教程说:

为了提高性能,如果无状态会话 bean 具有以下任何特征,您可以选择它:

  • bean 的状态没有特定客户端的数据。
  • 在单个方法调用中,bean 为所有客户端执行通用任务。例如,您可以使用无状态会话 bean 发送确认在线订单的电子邮件。
  • bean 实现了一个 Web 服务。

单例会话 bean 适用于以下情况:

  • 状态需要在应用程序之间共享。
  • 单个企业 bean 需要由多个线程同时访问。
  • 应用程序需要企业 bean 在应用程序启动和关闭时执行任务。
  • bean 实现了一个 Web 服务。

但是在以下情况下使用什么:

  • 不必在应用程序之间共享任何状态
  • 单个企业 bean 可以被多个线程同时访问
  • 无需执行启动或击落任务

例如,我有一个具有以下界面的登录服务:

应该用@Singleton 还是@Stateless 注释?一个和另一个有什么好处?如果 LoginService 需要注入一个 EntityManager(将同时使用)怎么办?

另外:我正在考虑 Spring 服务 bean 的 Java EE 对应物,它们是无状态的单例。如果我理解正确,Java EE 对应物是 @Stateless 会话 bean,而 @Singleton Bean 用于在启动时配置应用程序或在关闭时清理或保存应用程序范围的对象。这个对吗?

0 投票
1 回答
1522 浏览

logging - Amazon Cloud 上的最佳“日志记录”选项。RDS 还是 SimpleDB?

我的网站架构包括 ASP.Net 和 MySQL。我打算将它部署在 Amazon Cloud 上。这意味着 EC2 实例和 RDS。我的查询是关于日志记录的。

我确保我的应用程序是无状态的,因此排除了登录应用程序层。所有状态/持久性都进入 RDS。谈到日志记录,我不确定 RDS 是否是一个不错的选择(只是推测)。由于它是新的,而且我还会记录数据库异常,因此登录 RDS 是不正确的。我想我可以使用的最佳选择是 SimpleDB。

我正在寻找在 RDS 和 SimpleDB 之间进行选择以进行日志记录的建议。

0 投票
2 回答
833 浏览

iphone - 异步无状态 API

想象一个列出一些食谱的表格视图。每次用户点击食谱时,都会加载一个新的表格视图,列出收据成分。

为了获取信息,我使用以下方法异步调用 REST API:

当用户点击食谱时,会调用 API 以获取食谱成分。但是,一旦进入新视图(其中列出了成分)并且在收到答案之前,用户可以返回并选择新食谱。

在这种情况下,我会收到两个答案;每个请求一个。问题是我不知道这个答案的要求是什么,我会用错误答案中的错误内容刷新 UI。

我不确定在这种情况下哪种方法是正确的。我正在考虑在答案中包含每个请求参数。因此,例如,如果我使用 API 搜索某个术语,我们说“foo”,我也会在答案中包含该术语,例如:

要求:

http://domain.com/api/search?term=foo

回答

在每个答案中包含每个请求参数对我来说看起来很奇怪,但这是我发现的唯一解决方案,可以创建一个准备好被称为异步的无状态 API。

¿ 有没有其他方法可以做到这一点?

(我正在使用委托模式为收到答案时调用的每个请求分配一个对象。问题是,在食谱的示例中,每次列出食谱成分时都会重用成分表视图)。

0 投票
3 回答
28632 浏览

web-services - 有状态与无状态 Web 服务

想象一个更复杂的 CRUD 应用程序,它具有三层架构并通过 Web 服务进行通信。客户端开始与服务器的对话并执行一些类似向导的操作。要处理向导,客户端需要服务器提供的反馈。


我们开始讨论这种方法的有状态或无状态 Web 服务。我结合自己的经验做了一些研究,这就指向了后面提到的问题。

具有以下属性的无状态 Web 服务(在我们的例子中):

但是我们可以去掉前两点,我们的应用程序不需要高扩展性和可用性。

所以我们来到有状态的网络服务。我读过很多博客和论坛帖子,实现有状态网络服务的最有创意的一点是:

但是几乎所有的 Web 应用程序不都有这些缺点吗?Web 应用程序使用 cookie、查询字符串、会话 ID 和所有东西来避免 http 的无状态。

那么为什么它对 web 服务那么糟糕呢?

0 投票
1 回答
1297 浏览

java - Wicket:无序列化的有状态页面中的无状态 AJAX 行为

我有非常有状态的页面,其中包含大量 AJAX 组件。这些组件中的大多数都具有行为,这些行为将用于调用 AJAX 请求的 JavaScript 代码呈现给 Java 代码。因为页面不是无状态的,每个请求都会导致页面序列化。到现在为止还挺好。

但是其中一些 AJAX 请求永远不会更改页面,因此不需要对页面进行序列化。例如,它是(自制)数据网格组件的前向缓存数据。这些请求不断调用,每个请求期间的页面序列化会导致延迟。

有一些无状态 wicket 组件的项目,例如wicket-stateless,但它解决了另一种情况 - 无状态组件的请求在无状态页面的新实例上处理。我想处理现有有状态页面实例上的请求,但没有序列化。

我曾尝试在自己的方法中实现这一点RequestCycleProcessor.resolve(),但我一直在从 requestParameters 搜索页面,因为Session.getPage()总是触及页面并且它会在请求处理后导致序列化。

  • 有没有什么例子,想法,在 Wicket 中实现这个?

希望这是可以理解的:)

0 投票
1 回答
723 浏览

nhibernate - 从“会话”更改为“无状态会话”,我可以完成我的课程

我使用无状态会话和遵循 HQL。

我的地址类有很多银行详细信息,但我无法访问。如果我使用正常会话,它可以工作。我能做些什么?

0 投票
5 回答
8433 浏览

asp.net - 如何使我的 Web 应用程序无状态但仍能做一些有用的事情?

我看过这个建议...

理想情况下,网络应该遵循 REST 原则并且是完全无状态的。因此,单个 URL 应该标识单个资源,而不必保留每个用户的导航历史记录。

...我阅读了 Wikipedia 页面http://en.wikipedia.org/wiki/REST听起来确实不错,但我不知道如何实际实现它。我在 ASP .NET Webforms NOT MVC 中工作。

例如,在我即将构建的应用程序中——我需要我的用户登录,然后才能允许他们做任何事情。在允许他们做很多有用的事情之前,他们必须跳过一些障碍——比如接受 T 和 C,并确认他们的基本细节没有改变。最后,他们被允许做他们真正想做的事情,比如 BuyAProduct!

在我看来(我来自富客户端的大量有状态世界)我需要状态来记录他们所做的事情并从中推断出他们被允许做什么。我看不出我如何支持他们(比如)为 BuyAProduct URI 添加书签。当他们到达书签时,我如何知道他们是否已登录以及他们是否同意 T 和 C 以及他们是否尽职尽责地检查了他们的基本详细信息?

我喜欢应用程序无状态的想法,部分原因是它似乎完全解决了“当用户单击后退和前进按钮时我该怎么办?”的问题。我不知道如何才能让它正常工作。我觉得我错过了一些关于这一点的真正基本的东西。

0 投票
1 回答
961 浏览

c# - 我可以同时拥有 ISession 和 IStatelessSession 吗?

考虑一个每视图事务模型,其中IHttpModulei 使用标准打开事务ISession

现在,我有一个页面,我想做一些批处理操作。由于IStatelessSession是批处理操作的首选:

  1. 可以同时ISessionIStatelessSession吗?安全吗?
  2. 如果 1. 是的,我可以使用相同的ITransaction吗?
  3. 如果 2. 不,我应该 Commit & Close the ISessionand its associatedITransaction然后为它打开IStatelessSession和新ITransaction的吗?
  4. 如果 3. 是,我应该注意哪些陷阱?

欢迎任何想法