技术领域
[0001] 本发明涉及互联网技术领域,尤其涉及响应处理方法及响应处理装置。
相关背景技术
[0002] 对于互联网业务,通常情况下,一个域名下的多个业务会部署在同一组服务器中。但是随着业务的逐渐扩大,内容必然会逐渐增多。在同一组服务器或容器中部署的内容增多,会造成系统之间相互影响,这样势必降低系统的可用性,并对系统的容量预估等造成困难。这时业界通常的做法是将每个业务横向拆分成多个模块,将同种类的模块分开部署,例如分别部署在不同的服务器中。这样的处理能够很大程度降低系统的耦合性。但由于业务的复杂性,拆分的各个模块之间通常难以做到完全隔离,导致在业务实现时会存在各个模块之间跳转的问题。由于各个不同种类的模块往往又部署在不同的服务器中,就需要在不同服务器之间进行跳转。
[0003] 现有解决在各个模块对应的不同服务器之间跳转通常采用如下两种方法:一种是将所有模块部署在同一个服务器或同一个容器中,使用服务器或容器中提供的forward方法进行跳转。但是这种方式存在较大的局限性,适用于比较简单的业务逻辑,当业务逻辑复杂的情况下,系统的可维护性会大大降低,这种方法应用于大规模、复杂逻辑的应用时存在明显的弊端。即对于复杂的业务逻辑,为了提高业务的可维护性,降低维护成本,我们无法使用容器内部的forward来减少客户端用户与业务之间的交互。
[0004] 另一种方法是:服务器通过中转装置接收到客户端发送的服务请求后,当服务器判断出客户端需要获取的服务不属于该服务器的服务模块,则把跳转信息发送给中转装置,中转装置再将跳转信息发送给客户端,客户端通过中转装置发送服务请求到另一个服务器以获取相应服务,若另一个服务器判断客户端需要获取的服务仍不属于其服务模块,则重复进行上述步骤,最后再使客户端通过中转装置发送服务请求到其他服务器获取相应服务,直至获取到相应的服务为止。这种跳转方法适用于各种环境,但是需要客户端多次与中转装置进行交互,会大大增加客户端与中转装置之间的交互时间,尤其在网络耗时较高的移动网络条件下,客户端与中转装置之间的网络带宽小、平均耗时长并且很不稳定,客户端与中转装置的多次交互会带来更高的失败率,更长的访问耗时以及更多的流量费用,会大大降低用户体验。
具体实施方式
[0013] 为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的响应处理方法及装置其具体实施方式、结构、特征及功效,详细说明如后。
[0014] 有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例详细说明中将可清楚的呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
[0015] 图1是本发明实施例提供的响应处理方法的步骤流程图。请参阅图1,本发明实施例的响应处理方法可包括以下步骤S101-S109:
[0016] 步骤S101:接收客户端发送的页面内容获取请求,并将页面内容获取请求发送给一个服务器。
[0017] 本步骤中,页面内容获取请求可以为Http(Hypertext transfer protocol,超文本传输协议)请求,此请求包括服务器的URL(Uniform/Universal Resource Locator,统一资源定位符,也被称为网页地址)。例如若一个网页内设置文本输入框和提交按钮,此提交按钮对应一个服务器的某个网页地址,若客户端的用户在此网页的文本输入框中输入内容,例如“王二”,再点击提交按钮触发页面内容获取请求,则客户端的浏览器即可将包含此服务器网页地址的页面获取请求发送给响应处理装置,再通过此响应处理装置将页面内容获取请求发送给此服务器。响应处理装置为访问服务器的接入装置或中转装置,即发送给所有服务器的内容都需经过此响应处理装置进行转发。
[0018] 其中,客户端为手机客户端等。客户端可以支持有线网络、无线网络、或wml(Wireless Markup Language,无线标记语言)、html(Hypertext Markup Language超文本标记语言)、html5(超文本标记语言下的一个重要版本)、xhtml(Extensible Hyper Text Markup Language,可扩展超文本标记语言)、Javascript等实现页面的语言。
[0019] 步骤S103:接收此服务器返回的响应包,并判断响应包是否为携带跳转信息的跳转响应包,若是跳转响应包,则执行步骤S105。
[0020] 本步骤中,响应包可以为Http响应包。若为Http响应包,则携带跳转信息的跳转响应包就为Http跳转响应包。此处跳转信息可以包括返回码(例如返回码为302)、跳转的目标地址(例如目标地址为下一个服务器的网页地址)、请求字段。请求字段用于请求响应处理装置跳转到此目标地址以获取页面内容。由于其返回码为302,因此通常又称此跳转响应包为302跳转响应包。在其他实施方式中,跳转信息也可以不包括请求字段,仅包括跳转的目标地址和/或返回码,这样,当接收到服务器返回的跳转响应包时,则可以直接根据跳转响应包的跳转信息中的目标地址或返回码向下一个服务器发送页面内容获取请求。若仅根据返回码(此返回码为跳转返回码)向下一个服务器发送页面内容获取请求,则需要预先存储所有服务器的网页地址,以便于查找到下一个服务器的网页地址后,再向查找到的服务器发送页面获取请求。
[0021] 步骤S103中具体还可包括步骤:判断响应包是否为携带页面内容的正常响应包,若是正常响应包,则执行步骤S107。
[0022] 其中,正常响应包可以为携带页面内容的Http响应包,此正常响应包可以包括返回码(例如返回码为200)和页面内容。
[0023] 由此可以得出步骤S103可以包括:接收此服务器返回的响应包,并判断此响应包是跳转响应包还是正常响应包(即判断此响应包是否为携带跳转信息的跳转响应包或是否为正常响应包),若是跳转响应包,则执行步骤S105,若是正常响应包,则执行步骤S107。
[0024] 步骤S105:根据此跳转信息向下一个服务器发送页面内容获取请求。
[0025] 其中,可以根据跳转信息中跳转的目标地址(例如目标地址为下一个服务器的网页地址)向下一个服务器发送页面内容获取请求。
[0026] 步骤S107:将页面内容发送给客户端以供客户端显示给用户。
[0027] 本步骤中,若接收到服务器返回的响应包是携带页面内容的正常响应包,则将页面内容发送给客户端,以在客户端浏览器上将此页面内容显示给用户。
[0028] 步骤S109:接收此下一个服务器返回的响应包,再执行步骤S103中的判断响应包是否为携带跳转信息的跳转响应包或是否为正常响应包的步骤。
[0029] 在本发明的实施例中,本发明通过接收服务器返回的响应包,若判断出响应包是携带跳转信息的跳转响应包,则根据此跳转信息向下一个服务器发送页面内容获取请求,直到获取到所需的页面内容为止,若响应包为携带页面内容的正常响应包,则将页面内容发送给客户端以供客户端显示给用户。客户端与响应处理装置之间这段网络通常是耗时最大、响应时间最长、出错概率最高的一段,而由响应处理装置代替客户端浏览器进行不同网页地址(部署在不同的服务器中的模块)之间的跳转,减少了客户端浏览器与响应处理装置间的交互次数,大大降低了因为网络环境带来的耗时、响应时间以及出错的概率,提升了用户体验。并且在模块自由拆分到不同的服务器的情况下,也仍然能够给用户带来良好的服务器间跳转体验。
[0030] 图2是本发明实施例提出的响应处理装置、客户端及服务器组成的系统之间交互的示意图。图2中以两个服务器222、223为例进行说明,在其它实施方式中,也可以根据实际需要而设置多个服务器,直到从某一服务器获取到所需的页面内容为止。由图2可以得出响应处理装置、客户端及服务器组成的系统的响应处理方法。请参阅图2,本发明实施例提出的此系统的响应处理方法可包括以下步骤S201-S211:
[0031] 步骤S201:客户端220发送页面内容获取请求给响应处理装置221(响应处理装置221为访问服务器222、223的接入装置或中转装置)。
[0032] 步骤S203:响应处理装置221将此页面内容获取请求发送给服务器222。
[0033] 步骤S205:服务器222将携带跳转信息的跳转响应包返回给响应处理装置221。
[0034] 本步骤中,跳转信息例如可以包括返回码(例如返回码为302)、跳转的目标地址(例如目标地址为服务器223的网页地址)、请求字段。请求字段用于请求响应处理装置221跳转到此目标地址以获取页面内容。在其他实施方式中,跳转信息也可以不包括请求字段,仅包括跳转的目标地址和/或返回码,这样,当响应处理装置221接收到服务器222返回的跳转响应包时,则可以直接根据跳转响应包的跳转信息中的目标地址向服务器223发送页面内容获取请求。若仅根据返回码(此返回码为跳转返回码)向下一个服务器发送页面内容获取请求,则响应处理装置221需要预先存储所有服务器(即服务器222、223)的网页地址,以便于响应处理装置221查找到下一个服务器(如服务器223)的网页地址后,再向查找到的服务器(如服务器223)发送页面获取请求。
[0035] 步骤S207:响应处理装置221根据此跳转信息向服务器223发送页面内容获取请求。
[0036] 其中,响应处理装置221可以根据跳转信息中跳转的目标地址(例如目标地址为服务器223的网页地址)向服务器223发送页面内容获取请求。
[0037] 步骤S209:服务器223向响应处理装置221返回携带页面内容的正常响应包。
[0038] 步骤S211:响应处理装置221将页面内容发送给客户端220以供客户端220显示给用户。
[0039] 此外,在本发明其他实施方式中,也可以在响应处理装置221和服务器222与223之间设置代理服务装置,以代替响应处理装置221实现上述类似功能或者处理更为复杂的逻辑。
[0040] 在本发明的实施例中,本发明通过响应处理装置221接收服务器222返回的响应包,若判断出响应包是携带跳转信息的跳转响应包,则根据此跳转信息向服务器223发送页面内容获取请求,直到获取到所需的页面内容为止,若响应包为携带页面内容的正常响应包,则将页面内容发送给客户端220以供客户端220显示给用户。客户端与响应处理装置之间这段网络通常是耗时最大、响应时间最长、出错概率最高的一段,而由响应处理装置代替客户端浏览器进行不同网页地址(部署在不同的服务器中的模块)之间的跳转,减少了客户端浏览器与响应处理装置间的交互次数,大大降低了因为网络环境带来的耗时、响应时间以及出错的概率,提升了用户体验。并且在模块自由拆分到不同的服务器的情况下,也仍然能够给用户带来良好的服务器间跳转体验。
[0041] 图3是本发明实施例提出的响应处理装置的主要架构框图。请参阅图3,响应处理装置包括:请求模块301、判断模块303以及响应处理模块305。
[0042] 请求模块301,用于接收客户端发送的页面内容获取请求,并将页面内容获取请求发送给一个服务器。
[0043] 其中,此页面内容获取请求可以为Http请求。此客户端可以支持有线网络、无线网络、或wml、html、html5、xhtml或Javascript等实现页面的语言。
[0044] 判断模块303,用于接收此服务器返回的响应包,并判断响应包是否为携带跳转信息的跳转响应包。
[0045] 其中,此响应包可以为Http响应包。此跳转信息可以包括返回码(例如返回码为302)、跳转的目标地址(例如目标地址为下一个服务器的网页地址)、请求字段。请求字段用于请求响应处理装置跳转到此目标地址以获取页面内容。在其他实施方式中,跳转信息也可以不包括请求字段,仅包括跳转的目标地址和/或返回码,这样,当接收到服务器返回的跳转响应包时,则可以直接根据跳转响应包的跳转信息中的目标地址向下一个服务器发送页面内容获取请求。若仅根据返回码(此返回码为跳转返回码)向下一个服务器发送页面内容获取请求,则响应处理装置需要预先存储所有服务器的网页地址,以便于响应处理装置查找到下一个服务器的网页地址后,再向查找到的服务器发送页面获取请求。
[0046] 此外,判断模块303,还用于判断响应包是否为携带页面内容的正常响应包,若是,将页面内容发送给客户端以供客户端显示给用户。
[0047] 响应处理模块305,用于若响应包为携带跳转信息的跳转响应包,则根据此跳转信息向下一个服务器发送页面内容获取请求。
[0048] 其中,响应处理模块305可以根据跳转信息中跳转的目标地址(例如目标地址为下一个服务器的网页地址)向下一个服务器发送页面内容获取请求。
[0049] 此外,响应处理模块305,还用于接收此下一个服务器返回的响应包,再执行判断模块303中的判断响应包是否为携带跳转信息的跳转响应包。
[0050] 在本发明的实施例中,本发明通过接收服务器返回的响应包,若判断出响应包是携带跳转信息的跳转响应包,则根据此跳转信息向下一个服务器发送页面内容获取请求,直到获取到所需的页面内容为止,若响应包为携带页面内容的正常响应包,则将页面内容发送给客户端以供客户端显示给用户。客户端与响应处理装置之间这段网络通常是耗时最大、响应时间最长、出错概率最高的一段,而由响应处理装置代替客户端浏览器进行不同网页地址(部署在不同的服务器中的模块)之间的跳转,减少了客户端浏览器与响应处理装置间的交互次数,大大降低了因为网络环境带来的耗时、响应时间以及出错的概率,提升了用户体验。并且在模块自由拆分到不同的服务器的情况下,也仍然能够给用户带来良好的服务器间跳转体验。
[0051] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0052] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。