首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web应用程序请求是如何由多个服务器通过维护同一个用户会话来处理的。

web应用程序请求是如何由多个服务器通过维护同一个用户会话来处理的。
EN

Stack Overflow用户
提问于 2013-04-26 06:10:04
回答 4查看 4.4K关注 0票数 8

想知道维护同一个用户会话的多个服务器是如何处理请求的。

例如:我们登录到IRCTC并尝试预订一张票。在付款过程中,IRCTC列出了多个银行选项,其中有单选按钮进行在线交易。假设我决定使用花旗银行进行交易,当我点击花旗银行单选按钮时,我被重定向到花旗银行网站交易页面,即你会看到URL从IRCTC网站切换到花旗银行网址。这意味着我完全脱离了IRCTC,转到了花旗银行的网站。现在,当我的支付交易完成后,我将从花旗银行网站切换回IRCTC网站,而不会终止用户会话。也就是说,当我完成交易后从花旗银行URL切换回IRCTC时,用户会话将保持在登录状态。

我想知道这是怎么回事。

  1. 如何将要求从IRCTC发送到花旗银行网站
  2. 花旗银行服务器如何接收IRCTC的详细信息
  3. 同样的请求是如何从花旗银行返回给IRCTC的,即服务器如何被切换(从花旗银行转到IRCTC)
  4. 在通信过程中,如何在两个不同的服务器之间维护相同的用户会话,即IRCTC将在支付事务完成后从花旗银行返回给IRCTC的请求中显示用户作为登录用户。在两个服务器之间切换时如何维护同一个用户会话?

我正在使用Struts框架工作。在这方面,请帮助我,并举例说明。

假设IRCTC使用struts (Jsp/Servlets),struts组件负责将IRCTC的详细信息发送给花旗银行,并从花旗银行收到退货到IRCTC。是否可以使用Requestdispacter.sendRedirect()或其他一些东西?

谢谢,

  • 阿南德
EN

回答 4

Stack Overflow用户

发布于 2013-04-26 06:20:17

有一种叫会话复制的东西。在集群中,所有集群节点都使用相同的会话信息。如果您有兴趣,请阅读链接的站点或其他有关会话复制工作方式的资源。

但是系统不需要共享整个会话对象。在您的情况下,您似乎要离开一台服务器,然后在没有任何特殊会话处理的情况下返回。会议从来没有结束过。就好像你会登录到你最喜欢的网站,然后移动到一个完全不同的页面,回到你的网站上。会议还在那里。你还在登录。

因此,IRCTC站点可能会将一些信息传递给花旗银行网站,花旗需要该网站来处理请求以及一个令牌(在最简单的情况下只是一个数字)。当花旗银行完成时,它会用结果代码和令牌调用一个IRCTC服务器。使用令牌,IRCTC服务器可以将结果代码与您的会话相关联。然后,花旗银行将你的浏览器重定向到一个IRCTC页面。那里的服务器有一个更新的会话,可以在您的订单过程中向您呈现下一个页面。

票数 3
EN

Stack Overflow用户

发布于 2013-04-26 06:43:41

这里没有和花旗银行之间共享的。IRCTC通过在花旗银行网址上提交表格向花旗银行提出请求,并以该形式将支付金额和其他东西作为隐藏参数发送(当然,通过安全机制,比如发送值的一些哈希代码)。

付款成功后,花旗银行将提交一份提交给IRCTC URL的表格(由IRCTC提供的返回网址)。使用隐藏参数中的细节(如成功/错误)。IRCTC对此进行处理,并显示成功/错误屏幕。

此外,在这种情况下,父应用程序中的会话永远不会被终止。本届会议可通过下列方式之一结束:

代码语言:javascript
复制
 1. Session time out
 2. Logout
 3. Application destroys the session

在这种情况下,所有这些都没有发生,用户会话仍然存在于浏览器和应用程序中。

如果应用程序有多个服务器,则使用服务器提供的会话复制机制在它们之间共享会话。

此外,web服务器请求相同的服务器(对于会话id),并且只在无法访问原始服务器时调用另一个应用服务器,在这种情况下,会话复制将拯救用户。

票数 1
EN

Stack Overflow用户

发布于 2013-04-26 06:23:57

怎么能说这两个服务器中的用户会话是相同的呢?

我将假设您是在讨论支付网关选项及其功能。

通常情况下,您发送一个web服务调用并将用户重定向到支付网关的URL,该URL将处理交易细节。

然后,原始银行接收支付网关、web服务响应和交易细节。

不过,这种流量在不同的网关上略有变化。然而,最重要的是他们不会在他们的服务器上为你的用户维护一个会话,如果他们正在维护一个会话,那么它将是为IRCTC网站。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16229825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档