本公开涉及网络通信技术领域,尤其涉及一种解决天窗问题的方法和装置。
背景技术:
随着ipv4地址资源的耗尽,为了能够容纳更多的网络接入端,ipv6网络开始逐步普及。目前,互联网处在ipv4向ipv6过渡阶段,兼用两种协议。
为了向用户提供大量的内部资源和外部资源,各种服务网站中存储大量的内部资源链接和外部资源链接。假如第一网站已经升级为支持ipv6协议,其内部资源链接为对应ipv6地址的链接;而因为其外部资源链接对应的第二网站没有升级,仍然采用ipv4协议;已经升级至采用ipv6协议的客户端在通过第一网站提供的外部资源链接访问第一网站内容时,其将出现响应缓慢、外部资源无法显示的情况;因外部资源对应的内容使得显示窗口出现页面残缺不全或者部分内容空白的问题为天窗问题。
当前第一网站可以采用如下的方法,尽可能地避免出现天窗问题。
第一种方法是:第一网站在响应客户端请求生成响应报文时,将响应报文中的外部资源链接转换为第二网站主站域名的子域名(第一网站可能也是第一网站),生成改写链接;在客户端触发改写链接时,dns服务器根据改写链接将客户端关于对外部资源的请求返回值第二网站服务器;第二网站服务器根据外部资源链接,采用ipv4网络请求第二网站的外部资源;在获得外部资源后,第二网站服务器再返回给客户端。
第二种方法是:第一网站在响应用户请求生成响应报文时,将响应报文中的外部资源链接转换为一相对路径链接;在客户端触发相对路径链接而生成查询请求到达第一网站服务器;第一网站服务器根据外部资源链接,采用ipv4网络请求第二网站的外部资源;在获得外部资源后,第一网站再返回给客户端。
前述两种方法存在如下问题:两种方法需要增加主站域名的子域名授权;第一网站提供的外部资源链接越多,其需要授权的子域名授权也越多,配置时间也随之增多;改写链接,采用外部链接改写的改写链接与已有资源链接冲突的可能性也增大,造成访问错误。某些熟悉外部资源链接ipv4网站的用户在查看到改写链接后,可能产生改写链接为恶意链接的疑虑。
技术实现要素:
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种解决天窗问题的方法和装置。
一方面,本申请提供一种解决天窗问题的方法,包括,第一服务器用于:
根据接收到的第一请求报文获取响应数据;所述第一请求报文是仅支持第一ip协议的客户端发送的请求报文;
在所述响应数据包括第一外部资源链接的情况下,生成包括第一查询参数的改写链接;所述第一外部资源链接为表示存储在第二服务器中资源的链接;所述第二服务器为仅支持第二ip协议的服务器;所述改写链接的域名为所述第一服务器的域名或者第三服务器的域名;所述第一查询参数的至少部分按照转换规则,根据所述第一外部资源链接的域名生成;所述第一服务器或所述第三服务器为同时支持所述第一ip协议和所述第二ip协议的服务器;
采用所述改写链接替换所述响应数据中的所述第一外部资源链接;
根据所述响应数据生成第一应答报文并发送;所述第一应答报文的目的ip地址为所述客户端ip地址。
可选地,在将所述应答报文发送给所述客户端后,所述第一服务器或者所述第三服务器还用于:
接收所述客户端发送的第二请求报文;
在所述第二请求报文包括所述改写链接的情况下,按照所述转换规则,根据所述改写链接还原得到所述第一外部资源链接;
根据所述第一外部资源链接获得外部资源;
根据所述外部资源生成第二应答报文并发送;所述第二应答报文的目的地址为所述客户端地址。
可选地,根据所述第一外部链接获得外部资源,包括:
生成包含所述第一外部资源链接的第三请求报文并发送;所述第三请求报文的目的地址为所述第二服务器地址;
在接收到由第二服务器返回的第三应答报文后,解析所述第三应答报文,获得所述外部资源。
可选地,所述转换规则包括第一转换规则和第二转换规则;
所述生成包括查询参数的改写链接,包括:在所述第一外部资源链接包括第二查询参数的情况下,根据所述第一转换规则将所述第二查询参数作为所述第一查询参数的一部分;以及,根据所述第二转换规则,将第一外部资源链接的域名转换为所述第一查询参数的另一部分。
可选地,所述转换规则包括第三转换规则;
所述生成包括查询参数的改写链接,包括:在所述第一外部链接不包括查询参数的情况下,根据所述第三转换规则将所述第一外部链接的域名转换为所述第一查询参数。
另一方面,本申请还提供一种解决天窗的装置,包括:
报文获取单元,用于根据接收到的第一请求报文获取响应数据;所述第一请求报文是仅支持第一ip协议的客户端发送的请求报文;
改写链接生成单元,用于在所述响应数据包括第一外部资源链接的情况下,生成包括第一查询参数的改写链接;所述第一外部资源链接为表示存储在第二服务器中资源的链接;所述第二服务器为仅支持第二ip协议的服务器;所述改写链接的域名为第一服务器的域名或者第三服务器的域名;所述第一查询参数的至少部分按照转换规则,根据所述第一外部资源链接的域名生成;所述第一服务器或所述第三服务器为同时支持所述第一ip协议和所述第二ip协议的服务器;
替换单元,用于采用所述改写链接替换所述响应数据中的所述第一外部资源链接;
报文发送单元,用于根据所述响应数据生成第一应答报文并发送;所述第一应答报文的目的ip地址为所述客户端ip地址。
可选地,还包括链接还原单元和外部资源获取单元;
所述报文获取单元还用于接收所述客户端发送的第二请求报文;
所述链接还原单元用于在所述第二请求报文包括所述改写链接的情况下,按照所述转换规则,根据所述改写链接还原得到所述第一外部资源链接;
所述外部资源获取单元用于根据所述第一外部资源链接获得外部资源;
报文发送单元还用于根据所述外部资源生成第二应答报文并发送;所述第二应答报文的目的地址为所述客户端地址。
可选地,所述外部资源获取单元包括:
发送子单元,用于生成包含所述第一外部资源链接的第三请求报文并发送;所述第三请求报文的目的地址为所述第二服务器地址;
接收子单元,用于在接收到由第二服务器返回的第三应答报文后,解析所述第三应答报文,获得所述外部资源。
可选地,所述转换规则包括第一转换规则和第二转换规则;
在所述第一外部资源链接包括第二查询参数的情况下,所述改写链接生成单元根据所述第一转换规则将所述第二查询参数作为所述第一查询参数的一部分;以及,根据所述第二转换规则,将第一外部资源链接的域名转换为所述第一查询参数的另一部分。
可选地,所述转换规则包括第三转换规则;
在所述第一外部链接不包括查询参数的情况下,所述改写链接生成单元根据所述第三转换规则将所述第一外部链接的域名转换为所述第一查询参数。
本申请还提供一种电子设备,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如前所述方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如前所述方法的步骤。
本申请提供的解决天窗问题的方法将改写链接替代了第一外部资源链接,并发送给客户端。客户端在接收到第一应答报文并解析得到响应数据后,如果其想查看第一外部资源链接对应的外部资源时,实际触发改写链接而并生成新的请求报文。因为改写链接的域名是第一服务器,所以新生成的第二请求报文会被发送给第一服务器。正是因为本申请的方法采用了已有的域名和参数构建了改写链接,所以不需要增加主站域名的子域名授权,减小了资源的配置量,也避免了资源链接可能冲突的问题。因为用户端查看的超链接为第一服务器域名对应的链接,第一服务器是用户前期已经访问的服务器,其对第一服务器信任度较大,因此造成用户怀疑改写链接为恶意链接的问题基本消除。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的解决天窗问题的方法的流程图;
图2是本申请实施例中应用于第一服务器的解决天窗问题的方法的流程图;
图3是本申请实施提供的触发改写链接后操作步骤流程图;
图4是本申请实施例提供的解决天窗问题的装置的结构示意图
图5是本申请实施例提供的第一服务器的结构示意图;
其中,11-报文获取单元,12-改写链接生成单元,13-替换单元,14-报文发送单元,15-链接还原单元,16-外部资源获取单元;21-处理器,22-存储器,23-通信接口,24-总线系统。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本申请实施例提供一种解决天窗问题的方法,通过第一服务器中的特殊处理步骤将与客户端采用不同ip协议的第二服务器对应的外部资源链接,按照特定的转换规则替换为域名为服务器已有域名的改写链接,使得客户端在查看改写链接时,将相应的请求返回给第一服务器,并由第一服务器再采用另外的ip协议从第二服务器中获得资源。
图1是本申请实施例提供的解决天窗问题的方法的流程图。如图1所示,本申请实施例提供的解决天窗问题的方法的参与方至少包括客户端和第一服务器。
本申请实施例中,客户端是仅支持第一ip协议的客户端;第一服务器是既可以支持第一ip协议,又可以支持第二ip协议的服务器,第一ip协议和第二ip协议并不兼容。
本申请实施例具体应用中,第一ip协议是ipv6协议,第二ip协议是ipv4协议;或者,第一ip协议是ipv4协议,第二ip协议是ipv6协议。
如图1所示,本申请实施例提供的方法包括步骤s101-s107。
s101:生成并发送第一请求报文。
如图1所示,步骤s101是由客户端执行。
客户端在选定与第一服务器中某一资源关联的资源链接(也就是超链接)后,根据第一ip协议生成第一请求报文,并将第一请求报文发送出去。第一请求报文的目的ip地址为第一服务器ip地址,经过路由设备路由后,第一请求报文被方给第一服务器。
以下的步骤s102-s107由第一服务器执行
s102:根据接收到的第一请求报文获取响应数据。
第一服务器在接收到第一请求报文后,按照第一ip协议解析第一请求报文,得到资源链接,并根据资源链接查询服务器数据库,获取与资源链接关联的响应数据。
实际应用中,响应数据可能包括文本、图片文件、音频文件或者视频文件,也可能包括超链接。在响应数据包括超链接的情况下,其可能是外部资源链接,也就是并不是第一服务器提供的资源对应的超链接。外部资源链接可能是与外部支持第一ip协议的服务器提供资源关联的链接,也可能是与外部支持第二ip协议的服务器提供资源关联的链接。为了方便起见,与外部支持第二ip协议的服务器提供资源关联的链接被称为第一资源链接,与外部支持第一ip协议的服务器提供资源关联的链接称为第二资源链接。
如前文所述,如果第一资源链接发送给客户端,客户端通过第一资源链接生成请求报文发送给相应的服务器后,因为配置了不同的ip协议,相应的服务器并不能解析此报文。
s103:判断响应数据是否包括第一外部资源链接。
若是,执行步骤s104;若否,直接执行步骤s106。
在本申请实施例中,为了实现步骤s103的步骤,可以在第一服务器中存储一可配置的域名表,域名表中存储有仅支持第一ip协议的服务器的域名或者仅存储有支持第二ip协议的服务器的域名。第一服务器可以将响应数据中的外部资源链接的域名与域名表中的域名进行匹配,确定响应数据中是否包含第一外部资源链接。
s104:生成包含第一查询参数的改写链接。
第一查询参数即为改写链接中除域名信息外的所有查询参数。
步骤s104中,第一服务器生成改写链接的规则为:(1)将第一服务器中一个域名作为改写链接的域名;第一服务器中的一个域名可以是其主站域名,也可以是一子域名,本申请实施例并不做限定。(2)根据转换规则,将第一外部资源链接中的域名转化成改写链接的第一查询参数的至少一部分。
根据第一外部资源链接的形式不同,本申请实施例提供的替换规则也就不同,分为如下两种情况。
第一种情况
第一种情况下,转换规则包括第一转换规则和第二转换规则;对应采用第一转换规则和第二转换规则的条件是:第一外部资源链接包括第二查询参数(第二查询参数即是第一外部资源链接的全部,其被命名为“第二查询参数”是为了与前述的第一查询参数区分)。
此时,生成第一查询参数的步骤包括:(1)将第一外部资源链接中的第二查询参数作为第一查询参数的一部分。(2)将第一外部资源链接中的域名转换为第一查询参数的另一部分。
例如,第一服务器的主站域名为www.test.com,且使用http协议访问。响应数据中包url为http://www.a.com/search?ie=utf-8&key的第一外部资源链接;第一服务器在查询到此第一外部资源链接后:(1)直接将http://www.test.com/作为改写链接的域名;(2)按照第一转换规则,将/search?ie=utf-8&key(也就是第二查询参数)作为第一查询参数的一部分;(3)按照第二转换规则,将http://www.a.com改写为&convert&http&www.a.com。继而组成了http://www.test.com/?ie=utf-8&key&convert&http&www.a.com这一改写链接。
应当注意的是,为了避免将第一查询参数中的部分内容识别为域名,第二转换规则包括“&convert&”标识符,将第一外部资源链接中的“://”转换为“&”。
第二种情况
第二种情况下,转换规则包括第三转换规则;对应采用第三转换规则的条件是:第一外部资源部包括第二查询参数。
此时,生成第一查询参数的步骤包括:根据第三转换规则将第一外部参数的域名转换为第一查询参数。
例如,第一服务器的主站域名为www.test.com,且使用http协议访问。响应数据中包url为http://www.a.com/的第一外部资源链接,第一服务器在查询到此第一外部资源链接后:(1)直接将http://www.test.com/作为改写链接的域名;(2)按照第三转换规则,将将http://www.a.com/转换为?convert&http&www.a.com的格式。继而组成了http://www.test.com/?convert&http&www.a.com这一改写链接。
应当注意的是,为了避免将第一查询参数中的部分内容识别为域名,第三转换规则采用“?convert&”作为标识符,将第一外部资源链接中的“://”转换为“&”。
s105:采用改写链接替换响应数据中的第一外部资源链接。
步骤s105执行时,第一服务器按照第一外部资源链接在响应数据中的位置,将替改写链接替换第一外部资源链接。
实际实施中,前述的步骤s102-s105可以实时地针对响应数据中的所有第一外部资源链接进行处理。
经过步骤s102-s105后,响应数据中的所有第一外部资源链接均更换为改写链接。随后可以继续执行s106。
s106:根据响应数据生成第一应答报文并发送。
步骤s106中,第一服务器根据第一ip协议生成第一应答报文。第一应答报文的目的ip地址为客户端ip地址。
本申请实施例中,根据响应数据的大小,第一服务器可能生成一个第一应答报文,也可能生成多个第一应答报文。第一应答报文的目的地址为客户端地址,经过路由设备路由后,第一应答报文可以发送给客户端,使得客户端获得相应数据。
结合前述的步骤s101-s106的描述,可以确定,本申请实施例提供的方案解决天窗的方法中,第一服务器在即将发送给客户端的响应数据中包括第一外部资源链接时,利用第一外部资源链接的域名作为一个第一服务器域名对应的查询参数形成改写链接,并将改写链接替换响应数据中的第一外部资源链接,随后将响应数据以第一应答报文的形式发送给客户端。
客户端在接收到第一应答报文并解析得到响应数据后,如果其想查看第一外部资源链接对应的外部资源时,实际触发改写链接而并生成新的请求报文(新的请求报文为后文中的第二请求报文)。因为改写链接的域名是第一服务器,所以新生成的第二请求报文会被发送给第一服务器。
本申请实施例中,第一服务器除了具有将第一外部资源链接转换为改写链接外,还具有根据转换规则将改写链接转换为第一外部资源链接的能力。因此第一服务器可以确定用户端欲获取的外部资源。
而因为前述步骤中,不需要增加主站域名的子域名授权,减小了资源的配置量,也避免了资源链接可能冲突的问题。因为用户端查看的超链接为第一服务器域名对应的链接,第一服务器是用户前期已经访问的服务器,其对第一服务器信任度较大,因此造成用户怀疑改写链接为恶意链接的问题基本消除。
前文描述中,实现解决天窗问题的方法包括客户端和第一服务器;实际方法流程中,相对于现有技术改进的是第一服务器的执行步骤,而客户端仍可以采用现有技术的方案。为了能够清楚地展示本申请实施例的创新之处,下文对本申请实施例中第一服务器的执行步骤再做简要说明。
图2是本申请实施例中应用于第一服务器的解决天窗问题的方法的流程图。结合图1和图2,第一服务器的执行步骤包括s201-s202。
s201:根据接收到的第一请求报文获取响应数据。
s202:判断响应数据是否包括第一外部资源链接。若是,执行s203;若否,直接执行s205。
s203:生成包含第一查询参数的改写链接;
s204:采用改写链接替换响应数据中的第一外部资源链接;
s205:根据响应数据生成第一应答报文并发送。
步骤s201-s205的具体执行过程可以参见前文步骤s102-s106,此处不再复述。
客户端在接收到第一应答报文,采用第一ip协议解析第一赢报文获得响应数据后,可能点击响应数据中的改写链接而查询对应的资源。图3是本申请实施提供的触发改写链接后操作步骤流程图。
在步骤s101-s107,本申请实施例提供的解决天窗的方法还包括如图3的步骤s301-s306。
应当注意的是,在图1所示的两个参与方的基础上,图3方法执行过程中涉及第二服务器;另外,如图3所示,实际应用中也可能涉及采用第一ip协议的第三服务器;因为此部分和现有技术相同,本申请实施例不再展开说明。
第二服务器是仅支持第二ip协议的服务器。因为客户端和第二服务器并不支持相同的ip协议,所以客户端根据第二服务器中资源关联的资源链接,生成的请求此资源的请求报文并不能被第二服务器解析,因此第二服务器也就不能直接向客户端返回请求报文。
s301:根据用户触发响应数据中的链接生成第二请求报文。
步骤s301由客户端执行。客户端使用者在查询链接对应的资源时,通过点击链接等操作触发客户端生成第二请求报文。
用户点击的链接可能为第一外部资源链接、第二外部资源链接或者内部资源链接。
其中第一外部资源链接和内部资源链接的域名均为第一服务器,所以如果用户点击的链接为此两种链接,则第二请求报文发送给第一服务器。第二外部资源链接的域名为其他服务器的域名,此其他服务器是支持第一ip协议的服务器,所以客户端生成的第二请求报文可以直接发送给此其他服务器。
s302:接收客户端发送的第二请求报文。
步骤s302-s306由第一服务器执行。步骤s302中,第一服务器接收第二请求报文,并解析得到其中的请求信息。
s303:判断第二请求报文是否包括改写链接。若是,执行s304;若否,执行s305。
步骤s303执行时,第一服务器可以通过对请求信息进行查询,查看请求信息是否包括超链接;如果包括超链接,并且超链接的域名是特定的域名,并且超链接的查询参数包括转换规则中的参数,则判定此超链接为改写链接,在此情况下执行304。
例如,结合前文距离,如果超链接的域名为http://www.test.com/,并且超链接中包括?convert&参数,则判定此超链接为改写链接。
s304:按照转换规则,根据改写链接还原得到第一外部资源链接。
步骤s304中的转换规则即为前述生成改写链接的转换规则。根据转化规则将改写链接还原得到第一外部资源链接,即使前述步骤s104的逆操作,此处不再复述。
s305:根据第一外部资源链接获取外部资源。
第一服务器在获取到第一外部资源链接后,即可以通过相应的处理确定外部资源。
本申请实施例中,根据第一外部资源链接获取外部资源的方式有多种。
在一个具体应用中,步骤s305可以包括子步骤s3051-s3052。对应的,第二服务器执行步骤s401-s402。
s3051:根据第二ip协议生成包含第一外部资源链接的第三请求报文并发送。
在步骤s3051中,第一服务器生成第三请求报文后,将第三请求报文发送给网络设备;其中第三请求报文的目的ip地址是第二服务器的ip地址。通过网络设备路由,第三请求报文被发送给第二服务器。
在第一服务器执行s3051后,第二服务器对应的执行步骤s401-s403。
s401:接收到第三请求报文后,获取第一外部资源链接。
步骤s401中,第二服务器根据第二ip协议解析第三请求报文,获得第一外部资源链接。
s402:根据第一外部资源链接查询外部资源。
s403:根据外部资源生成第三应答报文并发送。
步骤s403中,第二服务器根据第二ip协议生成第三应答报文,并将第一服务器的ip地址作为第三请求报文的目的ip地址。在第三应答报文发送后,经过路由设备路由,第三应答报文被发送给第一服务器。
s3052:接收由第二服务器返回的第三应答报文,根据第二ip协议解析第三返回报文,获得外部资源。
第一服务器在接收到第三应答报文后,通过第二ip协议解析第三返回报文,确定第三请求报文中的数据为客户端请求的外部资源。
采用子步骤s3051-s3052,第一服务器可以根据用户实际需求获取外部资源。
在另一具体应用中,步骤s305可以包括子步骤3053-3056。
s3053:查询本地已有资源是否包括第一外部资源链接对应的外部资源。若是,执行s3054;若否,执行s3055-s3056。
本地已有资源是为了第一服务器在前已经从第二服务器获取的,缓存在本地的资源。在一些特定应用中,某些第一外部资源链接被查看的频次很高,为提高响应效率,第一服务器可以将此类第一外部资源链接对应的外部资源缓存在本地,并通过第一外部资源链接作为标识。
s3054:从已有资源中获取外部资源。
如果第一外部资源链接对应的外部资源在本地已有缓存,第一服务器可以直接获取。
s3055:根据第二ip协议生成包含第一外部资源链接的第三请求报文,以将第三请求报文发送给第二服务器。
s3056:接收由第二服务器返回的第三应答报文,根据第二ip协议解析第三返回报文,获得外部资源。
s3055和s3056与前文s3051-s3052类似,此处不再复述,具体能内容可以参见s3051-3052中的表述。
在执行完成s305后,第一服务器可以继续执行步骤s306。
s306:根据外部资源生成第二应答报文并发送。
步骤s306中,第一服务器根据第一ip协议生成第二应答报文,将客户端的ip地址作为第二应答报文的目的ip地址,并发送第二应答报文。
通过路由设备的路由,第二应答报文可以发送给客户端,客户端在解析第二应答报文后,获得外部资源。
采用前述的步骤s301-s306,客户端获取了外部资源,避免出现了天窗问题。
在前文实施例中,第一服务器在步骤s104(或者s203)中生成包括第一查询参数的改写链接时,采用自己的域名作为改写链接的域名。在其他实施例中,在执行s104时,第一服务器还可以采用一第三服务器的域名作为改写链接的域名。第三服务器也是一能够同时支持第一ip协议和第二ip协议的服务器,并且第三服务器配置有前文提及的转换规则。
在改写链接的域名为第三服务器的情况下,前文的步骤s302-s306的执行主体由第一服务器转变为第三服务器。本实施例具体应用中,如果第一服务器是访问量很大的服务器,为了减小其访问压力,可以通过在步骤s104中设置将改写链接中的域名设置为第三服务器,而使得客户端的一些查询操作由第三服务器执行,继而减小第一服务器的访问量。
还应注意的是,实际应用中,第一服务器、第二服务器和第三服务器可以为单台服务器,也可以是多台实际服务器架构形成的服务器系统。
除了前文解决天窗问题的方法外,本申请实施例还提供一种解决天窗问题的装置。解决天窗问题的装置和前述解决天窗问题的方法采用相同的发明构思,能够解决相同的技术问题并得到对应的技术效果。下文仅就解决天窗的装置的架构做介绍,其各个模块的具体实现方式、各个模块的作用和整体装置的技术效果可以参见前文方法部分的表述。
图4是本申请实施例提供的解决天窗问题的装置的结构示意图。如图4,装置包括报文获取单元11、改写链接生成单元12、替换单元13和报文发送单元14。
报文获取单元11用于根据接收到的第一请求报文获取响应数据;第一请求报文是仅支持第一ip协议的客户端发送的请求报文;
改写链接生成单元12,用于在响应数据包括第一外部资源链接的情况下,生成包括第一查询参数的改写链接。
第一外部资源链接为表示存储在第二服务器中资源的链接;第二服务器为仅支持第二ip协议的服务器;改写链接的域名为第一服务器的域名或者第三服务器的域名;第一查询参数的至少部分按照转换规则,根据第一外部资源链接的域名生成;第一服务器或第三服务器为同时支持第一ip协议和第二ip协议的服务器;
替换单元13用于采用改写链接替换响应数据中的第一外部资源链接;
报文发送单元14用于根据响应数据生成第一应答报文并发送。第一应答报文的目的ip地址为客户端ip地址。
进一步地,解决天窗问题的装置中还包括链接还原单元15和外部资源获取单元16。
对应的,报文获取单元11还用于接收客户端发送的第二请求报文。
链接还原单元15用于在第二请求报文包括改写链接的情况下,按照转换规则,根据改写链接还原得到第一外部资源链接。
外部资源获取单元16用于根据第一外部资源链接获得外部资源。
报文发送单元14还用于根据外部资源生成第二应答报文并发送;第二报文的目的地址为客户端地址。
具体实施中,外部资源获取单元16可以包括发送子单元和接收子单元。
发送子单元用于生成包含第一外部资源链接的第三请求报文并发送;第三请求报文的目的地址为第二服务器地址;
接收子单元用于在接收到由第二服务器返回的第三应答报文后,解析第三返回报文,获得外部资源。
本申请实施例中,转换规则可以包括第一转换规则和第二转换规则。在第一外部资源链接包括第二查询参数的情况下,改写链接生成单元12根据第一转换规则将第二查询参数作为第一查询参数的一部分;以及,根据第二转换规则,将第一外部资源链接的域名转换为第一查询参数的另一部分。
本申请实施例中,转换规则可以包括第三转换规则;在第一外部链接不包括查询参数的情况下,改写链接生成单元12根据第三转换规则将第一外部链接的域名转换为第一查询参数。
基于前述的发明构思,本申请还提供一种服务器系统。服务器系统中包括第一服务器。
图5是本申请实施例提供的第一服务器的结构示意图。如图5所示,第一服务器包括至少一个处理器21、至少一个存储器22和至少一个通信接口23。通信接口23,用于与外部设备之间的信息传输。
第一服务器中的各个组件通过总线系统24耦合在一起。可理解地,总线系统24用于实现这些组件之间的连接通信。总线系统24除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但为了清楚说明起见,在图5中将各种总线都标为总线系统24。
可以理解,本实施例中的存储器22可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。在一些实施方式中,存储器22存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。
其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础任务以及处理基于硬件的任务。应用程序,包含各种应用程序,例如媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用任务。实现本公开实施例提供的计算电池剩余使用循环次数的方法的程序可以包含在应用程序中。
在本公开实施例中,处理器21通过调用存储器22存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,处理器21用于执行本公开实施例提供的解决天窗问题的方法的各个步骤。
本公开实施例提供的解决天窗问题的方法可以应用于处理器21中,或者由处理器21实现。处理器21可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器21中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器21可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本公开实施例提供的解决天窗问题的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器22,处理器21读取存储器22中的信息,结合其硬件完成方法的步骤。
本公开实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行解决天窗问题的方法的步骤各实施例的步骤,为避免重复描述,在此不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。