用于处理超文本传输协议请求的方法和系统技术方案

技术编号:5159907 阅读:296 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及超文本传输协议(HTTP,Hypertext Transfer Protocol)会话技术,尤其涉及用于处理HTTP请求的方法和系统。本发明专利技术提供了一种用于处理HTTP请求的方法,包括:接收要对应用的实例进行访问的原始HTTP请求;如果所述原始HTTP请求要访问的域名与所述应用的域名相同,将所述原始HTTP请求要访问的域名修改为与所述应用的域名不同的新域名,以生成要对所述应用的实例进行访问的新的HTTP请求,并且将所述新的HTTP请求发送至所述应用的服务器以对所述应用的实例进行访问,其中所述原始HTTP请求要访问的域名和所述新域名对应于相同的IP地址。从而避免现有技术中在同一超文本传输协议会话中运行同一应用的多个服务实例时出现的诸如数据混淆、数据错误、使用不便等各种问题。

【技术实现步骤摘要】

本专利技术涉及超文本传输协议(HTTP,Hypertext Transfer Protocol)会话技术,尤 其涉及用于处理HTTP请求的方法和系统。
技术介绍
HTTP超文本传输协议是一种单向协议。所谓单向协议是指,根据HTTP协议,服务 器不能主动向客户端发出连接请求,只能被动地等待并答复客户端发出的HTTP请求。由于 HTTP其本身并不支持在服务器保存客户端的状态信息,因此引入了一种状态管理机制,即 会话机制,用以在服务器与客户端之间保持会话状态。会话机制的引入克服了 HTTP的一些限制,使得能够在客户端及服务器维护各 HTTP请求间的关系。根据会话机制,当客户端初次连接服务器时,在服务器建立HTTP会话 并保存与该会话相关的变量,同时产生一个HTTP会话标识(session id)用来识别该会话 的变量。接着,服务器会在HTTP响应中指示浏览器在客户端生成与该HTTP会话标识对应 的“Cookie”。Cookie是服务器存储在客户端的一小段文本,在会话期间,每次通过浏览器 向服务器发出HTTP请求时,都会将Cookie中包含的会话标识包括在HTTP请求中发送给服 务器,从而使服务器能够识别该会话,并获得与该会话相关的变量。然而,在现有技术中,通常存在这样的情况,S卩,通常在一个HTTP会话中需要运行 与同一应用对应的多个应用实例。由于同一应用多个应用实例的域名都是相同的,在这种 情况下,应用的服务器为请求访问不同的应用实例的所有HTTP请求均生成相同的会话标 识(sessionid),也就是说,该多个应用实例共享了同一个HTTP会话。此时,就可能会出现 问题,例如数据混淆、数据丢失、数据出错等,并且严重影响用户体验。图1示出了传统的、可能会出现问题的具有多个应用实例的应用环境的示例。如 图1所示,在该示例中,有两个服务器,一个是门户服务器110,另一个是软件即服务应用 (SaaS, Software As a Service)服务器,诸如结算服务器120。用户可以通过浏览器以自己的用户名和密码登陆门户服务器110,随后用户进入 页面100。在页面100中,包括有三个用户接口组件,即内嵌框架(IFrame)101、内嵌框架 102和内嵌框架103。IFramelOUIFrame 102和IFrame 103都对应于相同的结算应用,因 此它们的接入点(IP地址)相同。然而,与IFrame 101对应的服务实例是“A”公司的主数 据,与IFrame 102对应的服务实例是“B”公司的主数据,而与IFrame 103对应的服务实例 是与“C”公司对应的主数据。在图1的左下方示出了这三个IFrame都打开时的Cookie 104的示例。从该 示例可以看出,Cookie 104中存在两个会话标识,即SESSIONID 105和SESSIONID 106。 SESSIONID 105用于在与门户服务器110通信时使用,同时在门户服务器110中保存有与 SESSI0NID105对应的变量信息111。SESSIONID 106用于在与结算服务器120通信时使用, 同时在结算服务器120中保存有与SESSIONID 106对应的变量信息121。根据现有技术,尽管在这种情况下存在与结算应用对应的三个应用实例,但在与结算服务器120通信时,却都是使用SEESI0NID 106,这是因为应用服务器(结算服务器) 对于请求访问这三个应用实例的HTTP请求只分配一个HTTP会话标识(session id)—— SESSI0NID106。由于利用该SESSI0NID 106根本无法区分正在使用的是哪个应用实例,因 此通常会出现问题。这是因为在对“A”公司的主数据进行操作之后,结算服务器120处所 存储的会话变量是与“A”公司相关的值,而在对“B”公司的主数据进行操作后,结算服务器 120处所存储的会话变量可能是与“B”公司相关的值。因此,在操作了 “B”公司的主数据 后,再提交访问“A”公司的HTTP请求以返回查看“A”公司的主数据,此时看到的实际可能 是与“B”公司相关的主数据。这造成了极大的混乱,并且还会出现数据错误的问题。为了解决该问题,在一些应用中,特别地设计了一种机制,该机制在检测到在同一 HTTP会话期间要求实例化同一应用的多个服务实例时,禁止该操作。换句话讲,如果想要处 理其他公司的数据,必须结束当前HTTP会话,重新连接服务器。利用这种方式,虽然避免了 数据混乱和数据错误的问题,但是却非常麻烦,给用户带来了很不好的体验。因此,这种解 决方案在根本上是不能满足商业需求的。还有另一种解决方案,即仅确保最后接入的服务实例的数据正确。这种方案简单, 但是用户不能查看先前应用实例的主数据。这依然给用户带来了很大的不便。虽然图1示出了结算服务器和门户服务器位于同一域中的环境,实际上在结算服 务器和门户服务器处于不同域时也同样会存在这些问题。
技术实现思路
为此,本专利技术提供了一种用于处理HTTP请求的方法和系统,以便克服现有技术中 的问题。根据本专利技术的一个方面,提供了一种用于处理超文本传输协议HTTP请求的方法, 包括接收要对应用的实例进行访问的原始HTTP请求;如果所述原始HTTP请求要访问的 域名与所述应用的域名相同,将所述原始HTTP请求要访问的域名修改为与所述应用的域 名不同的新域名,以生成要对所述应用的实例进行访问的新的HTTP请求,并且将所述新的 HTTP请求发送至所述应用的服务器以对所述应用的实例进行访问,其中所述原始HTTP请 求要访问的域名和所述新域名对应于相同的IP地址。在本专利技术的一个实施方式中,所述用于处理超文本传输协议HTTP请求的方法还 包括如果所述原始HTTP请求要访问的域名与所述应用的域名不同,直接将所述原始HTTP 请求发送至所述应用的服务器以对所述应用的实例进行访问。根据本专利技术的另一方面,提供了一种用于处理超文本传输协议HTTP请求的系统, 包括接收模块,用于接收要对应用的实例进行访问的原始HTTP请求;修改模块,被配置为 如果所述原始HTTP请求要访问的域名与所述应用的域名相同,将所述原始HTTP请求要访 问的域名修改为与所述应用的域名不同的新域名,以生成要对所述应用的实例进行访问的 新的HTTP请求;以及发送模块,被配置为将所述新的HTTP请求发送至所述应用的服务器以 对所述应用的实例进行访问,其中所述原始HTTP请求要访问的域名和所述新域名对应于 相同的IP地址。在本专利技术的一个实施方式中,所述发送模块还被配置为如果所述原始HTTP请求 要访问的域名与所述应用的域名不同,直接将所述原始HTTP请求发送至所述应用的服务器以对所述应用的实例进行访问。通过本专利技术的方法和系统,可以避免现有技术中在同一超文本传输协议会话中运 行同一应用的多个服务实例时出现的诸如数据混淆、数据错误、使用不便等各种问题,并给 用户带来了良好的体验,从而很好地满足了商业需求。附图说明通过对结合附图所示出的实施方式进行详细说明,本专利技术的上述以及其他特征将 更加明显,本专利技术附图中相同的标号表示相同或相似的部件。在附图中,图1示出了传统的、可能会出现问题的具有多个应用实例的应用环境的示例;图2示意性地示出了根据本发本文档来自技高网
...

【技术保护点】
一种用于处理超文本传输协议HTTP请求的方法,包括:  接收要对应用的实例进行访问的原始HTTP请求;  如果所述原始HTTP请求要访问的域名与所述应用的域名相同,将所述原始HTTP请求要访问的域名修改为与所述应用的域名不同的新域名,以生成要对所述应用的实例进行访问的新的HTTP请求,并且将所述新的HTTP请求发送至所述应用的服务器以对所述应用的实例进行访问,其中所述原始HTTP请求要访问的域名和所述新域名对应于相同的IP地址。

【技术特征摘要】
1.一种用于处理超文本传输协议HTTP请求的方法,包括接收要对应用的实例进行访问的原始HTTP请求;如果所述原始HTTP请求要访问的域名与所述应用的域名相同,将所述原始HTTP请求 要访问的域名修改为与所述应用的域名不同的新域名,以生成要对所述应用的实例进行访 问的新的HTTP请求,并且将所述新的HTTP请求发送至所述应用的服务器以对所述应用的 实例进行访问,其中所述原始HTTP请求要访问的域名和所述新域名对应于相同的IP地址。2.如权利要求1所述的方法,还包括如果所述原始HTTP请求要访问的域名与所述应 用的域名不同,直接将所述原始HTTP请求发送至所述应用的服务器以对所述应用的实例 进行访问。3.如权利要求1或2所述的方法,还包括将所述新的HTTP请求返回至发出所述原始 HTTP请求的客户端。4.如权利要求1或2所述的方法,还包括获取所述原始HTTP请求的URL,并分析所获 取的URL中的域名部分以判断所述原始HTTP请求要访问的域名是否与所述应用的域名相 同。5.如权利要求4所述的方法,如果所获取的URL中的域名部分与预定义的应用域名列 表中的域名相同,则确定所述原始HTTP请求要访问的域名与所述应用的域名相同。6.如权利要求4所述的方法,如果所获取的URL中的域名部分的模式与预定义的新域 名模式不同,则确定所述原始HTTP请求要访问的域名与所述应用的域名相同。7.如权利要求1-6任一所述的方法,其中将所述原始HTTP请求要访问的域名修改为与 所述应用的域名不同的新域名包括向所述原始HTTP请求的URL的头部加入随机产生的符 号。8.如权利要求7所述的方法,所述随机产生的符号符合预定义的新域名模式。9.如权利要求1-8任一所述的方法,还包括记录如下内容所述新域名、根据所述新域 名对所述应用进行最后一次访问的时间以及将所述新域名设置为无效域名的时间期限。10.如权利要求9所述的方法,还包括根据所记录的最后一次访问的时间和所记录的 时间期限,判断是否保持当前接收到的新域名有效,如果判断结果为否,将所述当前接收到 的新域名视为与所述应用的域名相同的原始域名。11.如权利要求1-10任一所述的方法,对于请求对同一应用的不同实例进行访问的不 同的原始HTTP请求,所修改得到的新域名各不相同,其中不同的原始HTTP请求要访问的域 名与所述同一应用的域名相同。12.如权利要求1-11任一所述的方法,所述应用是软件即服务应用。13.一种用于处理超文本传输协议HTTP请求的系统,包括接收模块,用于接收要对应用的实例进行访问的原始HTTP请求;修改模块,被配置为如果所述原始...

【专利技术属性】
技术研发人员:张剑鸣王斌向哲崔洁
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1