应用资源的代理方法、装置及电子设备与流程

文档序号:31563168发布日期:2022-09-20 18:35阅读:38来源:国知局
应用资源的代理方法、装置及电子设备与流程

1.本技术涉及网络技术,尤其涉及一种应用资源的代理方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.应用(application)是指用程序设计语言编制的应用程序,用于实现特定的功能,例如应用可以包括电子设备的系统应用以及专为个人设计的用户应用。应用往往涉及到开发、测试及产品体验等多个环节,因此往往会配置多个应用环境来支持相应的开发、测试及体验等操作。
3.在相关技术提供的方案中,通常是为不同应用环境配置不同的统一资源定位符(uniform resource locator,url),导致在访问不同应用环境中的应用资源时需要频繁地切换url,灵活性较差,同时也容易浪费电子设备的计算资源。


技术实现要素:

4.本技术实施例提供一种应用资源的代理方法、装置、电子设备及计算机可读存储介质,能够提升访问应用资源的灵活性和便利性,同时也能够减少电子设备的计算资源浪费。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供一种应用资源的代理方法,包括:
7.将多个应用环境与同一个代理域名进行绑定处理;
8.接收统一资源定位符url包括所述代理域名的访问请求;
9.在与所述代理域名存在绑定关系的所述多个应用环境中,确定所述访问请求所请求的目标应用环境;
10.根据所述代理域名对所述目标应用环境中应用资源的url进行更新处理,并根据包括更新后的url的应用资源响应所述访问请求。
11.在上述方案中,所述在与所述代理域名存在绑定关系的所述多个应用环境中,确定所述访问请求所请求的目标应用环境,包括:
12.获取所述访问请求中的访问身份信息,并对所述访问身份信息进行验证处理得到身份信息验证结果;
13.当所述身份信息验证结果为验证成功时,在与所述代理域名存在绑定关系的所述多个应用环境中,确定出根据所述访问身份信息可访问的应用环境;
14.其中,每个所述应用环境对应至少一个可访问的身份信息;
15.在至少一个所述可访问的应用环境中,确定所述访问请求所请求的目标应用环境。
16.在上述方案中,所述根据包括更新后的url的应用资源响应所述访问请求,包括:
17.根据所述目标应用环境中包括更新后的url的应用资源、以及未包括url的应用资
源,响应所述访问请求。
18.本技术实施例提供一种应用资源的代理装置,包括:
19.绑定模块,用于将多个应用环境与同一个代理域名进行绑定处理;
20.接收模块,用于接收统一资源定位符url包括所述代理域名的访问请求;
21.环境确定模块,用于在与所述代理域名存在绑定关系的所述多个应用环境中,确定所述访问请求所请求的目标应用环境;
22.更新模块,用于根据所述代理域名对所述目标应用环境中应用资源的url进行更新处理,并根据包括更新后的url的应用资源响应所述访问请求。
23.在上述方案中,所述环境确定模块,还用于:
24.获取所述访问请求中的访问身份信息,并对所述访问身份信息进行验证处理得到身份信息验证结果;
25.当所述身份信息验证结果为验证成功时,在与所述代理域名存在绑定关系的所述多个应用环境中,确定出根据所述访问身份信息可访问的应用环境;
26.其中,每个所述应用环境对应至少一个可访问的身份信息;
27.在至少一个所述可访问的应用环境中,确定所述访问请求所请求的目标应用环境。
28.在上述方案中,所述更新模块,还用于:
29.根据所述目标应用环境中包括更新后的url的应用资源、以及未包括url的应用资源,响应所述访问请求。
30.本技术实施例提供一种电子设备,包括:
31.存储器,用于存储可执行指令;
32.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的应用资源的代理方法。
33.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的应用资源的代理方法。
34.本技术实施例具有以下有益效果:
35.将多个应用环境与同一个代理域名进行绑定处理,在接收到url包括代理域名的访问请求时,在绑定的多个应用环境中确定访问请求所请求的目标应用环境,如此,根据统一的代理域名便可实现对多个应用环境的访问,无需频繁切换url;此外,根据代理域名对目标应用环境中应用资源的url进行更新处理,以响应访问请求,能够实现对应用资源的有效代理。综上,本技术实施例能够基于代理域名,提升访问不同应用环境中应用资源的灵活性和便利性,同时也能够减少电子设备的计算资源浪费。
附图说明
36.图1是本技术实施例提供的应用资源的代理系统的架构示意图;
37.图2是本技术实施例提供的终端设备的架构示意图;
38.图3a至图3e是本技术实施例提供的应用资源的代理方法的流程示意图;
39.图4是本技术实施例提供的客户端的用户界面示意图;
40.图5是本技术实施例提供的域名申请界面的示意图;
41.图6是本技术实施例提供的空间申请界面的示意图;
42.图7是本技术实施例提供的域名绑定界面的示意图;
43.图8是本技术实施例提供的环境创建界面的示意图;
44.图9是本技术实施例提供的环境管理界面的示意图;
45.图10是本技术实施例提供的代理规则管理界面的示意图;
46.图11是本技术实施例提供的客户端的浏览器界面的示意图;
47.图12是本技术实施例提供的应用资源的代理方法的流程示意图。
具体实施方式
48.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
49.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。在以下的描述中,所涉及的术语“多个”是指至少两个。
50.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
51.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
52.1)应用:指用程序设计语言编制的应用程序,用于实现特定的功能,例如应用可以包括电子设备的系统应用(如用于实现电子设备的底层功能的应用)以及专为个人设计的用户应用(如web应用)。
53.2)应用资源:指应用中的静态资源。本技术实施例对应用资源的类型不做限定,以web应用为例,应用资源的类型可以包括超文本标记语言(hyper text markup language,html)资源、层叠样式表(cascading style sheets,css)资源以及javascript资源。
54.3)应用环境:指针对应用所部署的计算机硬件、软件、网络设备和数据的总称,应用环境可以支持对应用执行特定的操作。举例来说,应用环境可以包括开发环境(用于支持开发人员对应用进行开发)、测试环境(用于支持测试人员测试应用是否稳定、是否存在bug等)及生产环境(用于支持用户日常使用应用)。
55.4)统一资源定位符(uniform resource locator,url):网络中的信息(如应用资源)位置的一种表示方式。url主要包括域名以及资源路径两个部分,其中,域名是由一串用点分隔的字符组成的网络中某一台计算机(即电子设备)或计算机组的名称,用于在数据传输时标识计算机的电子方位;资源路径是指应用资源在域名所表示的计算机或计算机组中的路径。例如url可以是now.xx.com/demo.html,其中now.xx.com是域名,demo.html是资源路径。
56.值得说明的是,url还可以包括其他内容,对此不做限定,例如还可以包括指定使用的传输协议,如超文本传输协议(hypertext transfer protocol,http)。
57.5)域名分隔符:url中用于分隔不同含义(层次)的内容的分隔符,url中默认的域
名分隔符是斜杠“/”,在本技术实施例中,也可以是特殊的设定域名分隔符,如“_tde_”。
58.本技术实施例提供一种应用资源的代理方法、装置、电子设备及计算机可读存储介质,能够提升访问应用资源的灵活性和便利性,同时也能够减少电子设备的计算资源浪费。下面说明本技术实施例提供的电子设备的示例性应用,本技术实施例提供的电子设备可以实施为各种类型的终端设备,也可以实施为服务器。
59.参见图1,图1是本技术实施例提供的应用资源的代理系统100的一个架构示意图,终端设备400通过网络300-1连接服务器200,服务器200通过网络300-2连接服务器500-1和服务器500-2。其中,服务器500-1和服务器500-2分别提供一个应用环境,图1中以应用环境a和应用环境b加以区分,但是这并不构成对本技术实施例的限定,例如一个服务器可以提供多个应用环境,例如可以由多个服务器(如服务器集群)提供一个应用环境。另外,网络300-1可以是广域网或者局域网,又或者是二者的组合,网络300-2同理。
60.在一些实施例中,以电子设备是终端设备为例,本技术实施例提供的应用资源的代理方法可以由终端设备实现。例如,终端设备400运行客户端410和代理客户端,其中,客户端410对应待代理的应用,例如web应用;代理客户端用于实现代理功能。代理客户端将待代理的应用的多个应用环境与同一个代理域名进行绑定处理,其中,应用环境的相关信息以及代理域名可以是代理客户端从外界获取到的,例如代理客户端可以呈现用户界面,并接收用户在用户界面中输入的应用环境的相关信息以及代理域名。
61.完成绑定处理后,代理客户端拦截客户端410所发送的url包括代理域名的访问请求,当拦截到访问请求时,在与代理域名存在绑定关系的多个应用环境中,确定访问请求所请求的目标应用环境。然后,代理客户端获取目标应用环境中的应用资源,并根据代理域名对获取到的应用资源中的url进行更新处理,得到更新后的url。以目标应用环境是服务器500-1所提供的应用环境a为例,则代理客户端可以从服务器500-1中获取应用资源,其中,代理客户端与服务器500-1之间可以存在直接或间接的连接。最终,代理客户端将包括更新后的url的应用资源发送至客户端410,以作为对访问请求的响应。作为示例,图1中示出了客户端410所提供的用户界面,即xx应用程序的用户界面,该用户界面中呈现出了客户端410发送访问请求后所得到的应用资源,图1中以图像资源为例,该图像资源包括的是更新后的url(图1中未示出)。
62.在一些实施例中,以电子设备是服务器为例,本技术实施例提供的应用资源的代理方法也可以由服务器实现。例如,服务器200可以是用于实现代理功能的服务器,在实现代理功能的过程中,服务器200首先将多个应用环境与同一个代理域名进行绑定处理。完成绑定处理后,服务器200便可拦截客户端410所发送的url包括代理域名的访问请求。在拦截到访问请求时,服务器200在与代理域名存在绑定关系的多个应用环境中,确定访问请求所请求的目标应用环境,图1中以目标应用环境为服务器500-1提供的应用环境a为例。然后,服务器200从目标应用环境获取应用资源,根据代理域名对获取到的应用资源的url进行更新处理,并将包括更新后的url的应用资源发送至客户端410,以作为对拦截到的访问请求的响应。
63.值得说明的是,图1示出的服务器200仅为示例,实际上,也可以通过区别于终端设备400的终端设备来实现代理功能。
64.在一些实施例中,终端设备400或服务器200可以通过运行计算机程序来实现本申
请实施例提供的应用资源的代理方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
65.在一些实施例中,以上示出的服务器(如服务器200、服务器500-1及服务器500-2)可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云服务可以是云代理服务,供终端设备400进行调用。值得说明的是,云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。另外,终端设备400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
66.以本技术实施例提供的电子设备是终端设备为例说明,可以理解的,对于电子设备是服务器的情况,图2中示出的结构中的部分(例如用户接口、呈现模块和输入处理模块)可以缺省。参见图2,图2是本技术实施例提供的终端设备400的结构示意图,图2所示的终端设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
67.处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
68.用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
69.存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
70.存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器450旨在包括任意适合类型的存储器。
71.在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
72.操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
73.网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
74.呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
75.输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
76.在一些实施例中,本技术实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的应用资源的代理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:绑定模块4551、接收模块4552、环境确定模块4553以及更新模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
77.将结合本技术实施例提供的电子设备的示例性应用和实施,说明本技术实施例提供的应用资源的代理方法。为了便于理解,将用于实现代理功能的电子设备命名为代理设备。
78.参见图3a,图3a是本技术实施例提供的应用资源的代理方法的一个流程示意图,将结合图3a示出的步骤进行说明。
79.在步骤101中,将多个应用环境与同一个代理域名进行绑定处理。
80.对于一个应用来说,往往涉及到开发、测试及产品体验等多个环节,因此往往会配置多个应用环境来支持相应的开发、测试及体验等操作,为了便于访问这些应用环境,在本技术实施例中,代理设备可以将多个应用环境与同一个代理域名进行绑定处理。本技术实施例对应用环境的类型不做限定,例如应用环境可以是测试环境、开发环境以及生产环境中的任意一种;对代理域名的形式也不做限定,可以根据实际应用场景进行设定。
81.在步骤102中,接收统一资源定位符url包括代理域名的访问请求。
82.步骤101中执行的绑定处理即是建立多个应用环境与代理域名之间的绑定关系,基于该绑定关系,代理设备可以在网络中拦截客户端发送的url包括代理域名的访问请求,其中,网络可以是广域网或局域网,又或者是二者的组合。本技术实施例对访问请求的类型不做限定,根据访问请求包括的url中的协议而定,例如可以是http请求。
83.在步骤103中,在与代理域名存在绑定关系的多个应用环境中,确定访问请求所请求的目标应用环境。
84.代理设备在拦截(接收)到访问请求时,在与代理域名存在绑定关系的多个应用环境中,确定访问请求所请求的目标应用环境,其中,目标应用环境的数量为一个。本技术实施例对确定目标应用环境的方式不做限定,例如可以在与代理域名存在绑定关系的多个应用环境中进行随机选择,并将选择出的一个应用环境作为目标应用环境。当然,目标应用环境也可以是访问请求所指定的。
85.在一些实施例中,可以通过这样的方式来实现上述的在与代理域名存在绑定关系
的多个应用环境中,确定访问请求所请求的目标应用环境:获取访问请求中的访问身份信息,并对访问身份信息进行验证处理得到身份信息验证结果;当身份信息验证结果为验证成功时,在与代理域名存在绑定关系的多个应用环境中,确定出根据访问身份信息可访问的应用环境;其中,每个应用环境对应至少一个可访问的身份信息;在至少一个可访问的应用环境中,确定访问请求所请求的目标应用环境。
86.当访问请求包括身份信息(为了便于区分,命名为访问身份信息)时,代理设备可以对访问身份信息进行验证处理,得到身份信息验证结果。本技术实施例对访问身份信息的形式不做限定,例如可以是如用户名+密码的形式,也可以是cookie形式,其中,cookie是为了辨别用户身份而存储在客户端中的数据。代理设备可以将访问身份信息与预先存储的多个安全身份信息进行匹配处理,当访问身份信息与任意一个安全身份信息匹配成功时,确定身份信息验证结果为验证成功,这里的匹配成功可以是指相同;当访问身份信息与所有安全身份信息均匹配失败时,确定身份信息验证结果为验证失败,这里的匹配失败可以是指不同。
87.当身份信息验证结果为验证成功时,代理设备在与代理域名存在绑定关系的多个应用环境中,确定出访问身份信息可访问的应用环境。例如,可以遍历多个应用环境,当遍历到的应用环境对应的白名单包括访问身份信息时,将遍历到的应用环境作为根据访问身份信息可访问的应用环境;当遍历到的应用环境对应的白名单不包括访问身份信息时,将遍历到的应用环境作为根据访问身份信息不可访问的应用环境。其中,每个应用环境对应的白名单包括至少一个可访问的身份信息。此外,当身份信息验证结果为验证失败时,代理设备可以向客户端发送身份不安全的提示,以提示客户端根据新的访问身份信息发起访问请求。
88.当可访问的应用环境的数量为至少一个时,代理设备在所有可访问的应用环境中,确定访问请求所请求的目标应用环境,例如,可以在所有可访问的应用环境中进行随机选择得到目标应用环境,也可以将所有可访问的应用环境中的默认应用环境作为目标应用环境,方式不限于此。此外,当可访问的应用环境的数量为零时,代理设备可以将无权限访问的提示发送至客户端。
89.通过上述方式,一方面对访问身份信息进行验证处理,能够对访问身份信息本身进行安全控制;另一方面根据访问身份信息筛选出可访问的应用环境,能够保证应用环境中应用资源的安全性。值得说明的是,上述的对访问身份信息进行验证处理的操作、以及确定可访问的应用环境的操作也可以仅选其一执行。
90.在步骤104中,根据代理域名对目标应用环境中应用资源的url进行更新处理,并根据包括更新后的url的应用资源响应访问请求。
91.这里,代理设备获取目标应用环境中的应用资源,并根据代理域名对获取到的应用资源的url进行更新处理,得到更新后的url。其中,获取的应用资源可以是目标应用环境中的全量应用资源或部分应用资源,根据访问请求中的url而定。
92.值得说明的是,这里进行更新处理的是应用资源包括的url,以应用资源为html资源的情况举例,html资源包括的url可以是html资源的href属性所指定的url。此外,进行更新处理后得到的更新后的url至少包括代理域名。
93.然后,代理设备根据包括更新后的url的应用资源响应访问请求,例如将更新后的
url的应用资源发送至客户端,以作为对客户端发送的访问请求的响应。如此,客户端可以基于统一的代理域名实现对多个应用环境中应用资源的访问,而无需针对不同应用环境修改访问请求中的url所包括的代理域名。
94.客户端在接收到应用资源时,可以根据应用资源中更新后的url,生成并发送新的访问请求,实现基于代理域名的再一次访问。例如,客户端可以将接收到的应用资源呈现于用户界面中,并在接收到针对应用资源的触发操作时,根据被触发的应用资源中更新后的url生成新的访问请求。值得说明的是,代理设备在对从客户端接收到的新的访问请求进行处理时,可以直接沿用步骤103中确定出的目标应用环境,即可以不用重新确定目标应用环境。
95.为了便于理解,本技术实施例提供了如图4所示的客户端的用户界面示意图,以被代理的应用为直播应用举例。首先,客户端根据在用户界面41(如浏览器界面)的地址栏42中获取到的url生成访问请求,并将访问请求发送至网络,这里的url至少包括代理域名,图4中以“代理域名/
……”
为例。客户端在接收到代理设备针对访问请求响应的应用资源时,将应用资源呈现于用户界面41中,如图4中的“直播应用”的文本、a主播的图像、b主播的图像及c主播的图像,这里,可以不呈现应用资源中更新后的url。
96.客户端在接收到针对呈现的任意一个应用资源的触发操作时,根据被触发的应用资源中更新后的url生成新的访问请求,并将新的访问请求发送至网络,这里,以被触发的应用资源为应用资源43举例。客户端在接收到代理设备针对新的访问请求响应的应用资源44时,将应用资源44呈现于用户界面41中,图4中以应用资源44为c主播的直播间数据举例。
97.在一些实施例中,当根据代理域名对目标应用环境中应用资源的url进行更新处理时,还包括:删除应用资源包括的以下属性中的至少之一:禁止更新属性、禁止身份属性、禁止代理属性、内容编码属性以及内容长度属性。
98.这里,对应用资源中可以删除的属性进行分别说明。
99.1)禁止更新属性,用于禁止(或称阻挡)对应用资源的内容进行更新处理,因此可以删除禁止更新属性,以保证对应用资源的url的更新处理能够成功完成。禁止更新属性如html资源的script标签中的integrity属性。
100.2)禁止身份属性,用于禁止客户端在基于应用资源发起的访问请求中携带访问身份信息,因此可以删除禁止身份属性,以提升后续访问的安全性。禁止身份属性如html资源的script标签中的crossorgin属性。
101.3)禁止代理属性,用于限制应用资源的加载来源,即限制客户端只能加载同源的应用资源,不能加载经代理设备代理的应用资源。因此,可以删除禁止代理属性,以保证客户端能够成功加载代理设备发送的应用资源。禁止代理属性如content-security-policy属性。
102.4)内容编码属性,用于表示应用资源的压缩编码。代理设备在代理应用资源的过程中会解压后再次压缩,导致应用资源实际的压缩编码与内容编码属性中的压缩编码不一致,进一步会导致客户端加载应用资源失败。因此,可以删除内容编码属性,以保证客户端能够成功加载代理设备发送的应用资源。内容编码属性如content-encoding属性。
103.5)内容长度属性,用于表示应用资源的内容长度。由于代理设备会对应用资源的url进行更新处理,导致更新处理后应用资源的实际内容长度与内容长度属性中的内容长
度不一致,进一步会导致客户端加载应用资源失败。因此,可以删除内容长度属性,以保证客户端能够成功加载代理设备发送的应用资源。内容长度属性如content-length属性。
104.在一些实施例中,可以通过这样的方式来实现上述的根据包括更新后的url的应用资源响应访问请求:根据目标应用环境中包括更新后的url的应用资源、以及未包括url的应用资源,响应访问请求。
105.对于代理设备从目标应用环境中获取到的应用资源,可能部分包括有url,部分未包括url,因此,代理设备可以从获取到的应用资源中过滤出包括url的应用资源,并对过滤出的应用资源的url进行更新处理。此外,对于获取到的应用资源中未包括url的应用资源,则保持原样即可。如此,代理设备在响应访问请求时,主要反馈两种资源,第一种资源是从目标应用环境中获取到的且url经过更新处理的应用资源,第二种资源是从目标应用环境中获取到的且未包括url的应用资源。通过上述方式,能够提升响应访问请求的全面性和准确性。
106.在一些实施例中,步骤104之前,还包括:从目标应用环境中获取格式为流数据的应用资源,并将应用资源的格式从流数据转换为字符串数据。
107.在一些情况如node.js场景中,代理设备从目标应用环境中获取到的是格式为流(即stream)数据的应用资源,由于流数据不便于直接处理,因此,可以将应用资源的格式从流数据转换为字符串(string)数据,其中,node.js是基于chrome v8引擎构建的javascript运行环境,是一种后端技术。举例来说,可以先将应用资源的格式从流数据转换为二进制数据(例如使用buffer类处理的二进制数据),再将应用资源的格式从二进制数据转换为字符串数据。较之流数据,字符串数据更易于处理,因此通过上述方式能够提升对url进行更新处理的便利性。
108.如图3a所示,本技术实施例提供了根据统一的代理域名访问多个应用环境的方式,能够提升访问的灵活性和便利性,同时也能够减少计算资源的浪费。
109.在一些实施例中,参见图3b,图3b是本技术实施例提供的应用资源的代理方法的一个流程示意图,图3a示出的步骤104可以通过步骤201至步骤204实现,将结合各步骤进行说明。
110.在步骤201中,获取目标应用环境对应的包括域名的待代理内容。
111.针对与代理域名存在绑定关系的多个应用环境,代理设备获取为每个应用环境配置的代理规则。例如,代理设备可以呈现代理规则配置界面,并响应于在代理规则配置界面中接收到的配置操作,获取为应用环境配置的代理规则。在本技术实施例中,代理规则可以是以待代理内容的形式体现的,待代理内容至少包括域名,还可以包括部分或全部资源路径。
112.在步骤202中,将目标应用环境中应用资源的url与待代理内容进行匹配处理,得到匹配结果。
113.这里,针对代理设备从目标应用环境中获取到的每个应用资源(这里指包括url的应用资源),将应用资源的url与目标应用环境对应的待代理内容进行匹配处理,当应用资源的url包括目标应用环境对应的待代理内容时,确定匹配结果为匹配成功;当应用资源的url未包括目标应用环境对应的待代理内容时,确定匹配结果为匹配失败。
114.在一些实施例中,目标应用环境对应的待代理内容的数量包括多个,且每个待代
理内容对应一个优先级;可以通过这样的方式来实现上述的将目标应用环境中应用资源的url与待代理内容进行匹配处理:根据多个待代理内容对应的优先级的顺序,遍历多个待代理内容,并针对遍历到的待代理内容执行以下处理:将目标应用环境中应用资源的url与遍历到的待代理内容进行匹配处理。
115.这里,在目标应用环境对应的待代理内容的数量包括多个,且每个待代理内容对应一个优先级的情况下,可以先根据每个待代理内容对应的优先级,对目标应用环境对应的多个待代理内容进行排序处理,这里,是按照优先级从高到低的顺序进行排序处理。
116.然后,针对代理设备从目标应用环境中获取到的每个应用资源(这里指包括url的应用资源),对排序完成的多个待代理内容进行遍历处理,并将应用资源的url与遍历到的待代理内容进行匹配处理。当得到的匹配结果为匹配成功时,针对该应用资源执行步骤203;当得到的匹配结果为匹配失败时,继续遍历下一个待代理内容。由于待代理内容对应的优先级越高,其重要程度越高,因此通过上述方式,能够提升匹配处理及后续更新处理的准确性。值得说明的是,当某个应用资源的url与目标应用环境对应的所有待代理内容均匹配失败时,可以忽略该应用资源,即不对该应用资源的url进行更新处理。
117.在步骤203中,当匹配结果为匹配成功时,将代理域名添加至应用资源的url中,并根据域名分隔符将应用资源的url中的代理域名、待代理内容以及剩余内容进行分隔处理,得到更新后的url。
118.本技术实施例提供了对应用资源的url进行更新处理的一种示例,当匹配结果为匹配成功时,代理设备可以将代理域名添加至应用资源的url中,如添加至url的首部。然后,根据域名分隔符将应用资源的url中的代理域名、待代理内容以及剩余内容进行分隔处理,得到更新后的url。其中,域名分隔符可以是url中默认的域名分隔符“/”,也可以是特殊的设定域名分隔符,如“_tde_”。
119.在一些实施例中,步骤102之前,还包括:将默认域名与代理域名进行绑定处理;当待代理内容包括与代理域名存在绑定关系的默认域名、且匹配结果为匹配成功时,还包括:对应用资源的url中的默认域名进行删除处理,以更新应用资源的url中的待代理内容。
120.在本技术实施例中,除了将多个应用环境与代理域名进行绑定处理之外,代理设备还可以将获取到的默认域名与代理域名进行绑定处理,其中,默认域名区别于代理域名,对默认域名的具体形式不做限定。
121.当待代理内容包括默认域名、且应用资源的url与待代理内容之间的匹配结果为匹配成功时,可以无需保留应用资源的url中的默认域名(即原始域名),直接对应用资源的url中的默认域名进行删除处理,以更新应用资源的url中的待代理内容,如此,可以减少更新后的url的长度,节省计算资源。在后续进行url还原时,由于更新后的url仅包括代理域名一个域名,因此代理设备可以直接还原出存在绑定关系的默认域名。
122.举例来说,某应用资源的url为now8.gtimg.com/test.js,代理域名为fastest.now.xx.com,目标应用环境对应的待代理内容为now8.gtimg.com,默认域名同样为now8.gtimg.com,则可以删除该应用资源的url中的默认域名,并将代理域名添加至该url的首部,然后根据域名分隔符(以“_tde_”为例)将url中的代理域名、更新后的待代理内容(这里为空)以及剩余内容分隔开来,得到更新后的url为fastest.now.xx.com/_tde_/test.js。在域名分隔符为url中默认的“/”的情况下,得到的更新后的url为
fastest.now.xx.com/test.js。
123.值得说明的是,本技术实施例对删除默认域名的操作的执行时机不做限定,例如可以在将代理域名添加至应用资源的url之后、根据域名分隔符进行分隔处理之前进行,也可以在根据域名分隔符进行分隔处理之后进行。
124.在一些实施例中,当匹配结果为匹配成功时,还包括:针对应用资源的url中的待代理内容所包括的域名,将域名从域名格式转换为非域名格式,以更新应用资源的url中的待代理内容。
125.这里,当匹配结果为匹配成功时,可以将应用资源的url中的原始域名(即待代理内容所包括的域名)从域名格式转换为非域名格式,以更新应用资源的url中的待代理内容,如此,在更新后的url中,仅存在代理域名一个域名,能够更加符合url本身存在的格式要求。
126.值得说明的是,域名格式和非域名格式可以是针对域名内部的分隔符的格式,例如,在域名格式中,域名内部的分隔符是默认的“.”,如域名now8.gtimg.com;在非域名格式中,域名内部的分隔符是特殊的设定内部分隔符“_”,即下划线,当然,这并不构成对非域名格式的限定。
127.为了便于理解,进行举例说明。某应用资源的url为now8.gtimg.com/test.js,代理域名为fastest.now.xx.com,待代理内容为now8.gtimg.com,则可以将url中的原始域名从域名格式转换为非域名格式,并将代理域名添加至该url的首部,最终根据域名分隔符(以“_tde_”为例)将url中的代理域名、更新后的待代理内容(更新后的原始域名)以及剩余内容分隔开来,得到更新后的url为fastest.now.xx.com/_tde_/now8_gtimg_com/_tde_/test.js。在域名分隔符为url中默认的“/”的情况下,得到的更新后的url为fastest.now.xx.com/now8_gtimg_com/test.js。
128.值得说明的是,本技术实施例对将原始域名从域名格式转换为非域名格式的操作的执行时机不做限定,例如可以在将代理域名添加至应用资源的url之后、根据域名分隔符进行分隔处理之前进行,也可以在根据域名分隔符进行分隔处理之后进行。
129.在步骤204中,根据包括更新后的url的应用资源响应访问请求。
130.如图3b所示,本技术实施例基于目标应用环境对应的待代理内容,对应用资源的url进行更新处理,能够提升更新处理的有效性和准确性。
131.在一些实施例中,参见图3c,图3c是本技术实施例提供的应用资源的代理方法的一个流程示意图,图3a示出的步骤102之后,还可以在步骤301中,根据域名分隔符对访问请求中的url进行拆分处理,得到代理域名以及还原出的url。
132.例如,针对访问请求中的url,代理设备可以将该url中位于第一个域名分隔符之前的内容作为代理域名,将该url中位于第一个域名分隔符之后的内容作为还原出的url。其中,域名分隔符可以是url中默认的域名分隔符“/”,也可以是特殊的设定域名分隔符,如“_tde_”。
133.值得说明的是,步骤301可以在步骤103之前或之后执行,也可以同时执行。
134.在图3c中,图3a示出的步骤104可以通过步骤302至步骤304实现,将结合各步骤进行说明。
135.在步骤302中,根据还原出的url在目标应用环境中进行查询处理。
136.在确定出目标应用环境之后,代理设备即可根据还原出的url在目标应用环境中进行查询处理。
137.值得说明的是,本技术实施例中的不同应用环境可能存在数据差异,因此就算是对于同样的url,在不同应用环境中进行查询处理得到的应用资源也可能不同。
138.在一些实施例中,可以通过这样的方式来实现上述的根据还原出的url在目标应用环境中进行查询处理:根据域名分隔符对还原出的url进行拆分处理,得到候选域名及候选资源路径;当候选域名包括参数标识时,删除候选域名中的参数标识以及被参数标识所标识的参数,并将删除的参数标识及参数添加至候选资源路径中;当候选域名与非域名格式匹配成功时,将候选域名从非域名格式转换为域名格式;将候选域名作为还原出的域名,将候选资源路径作为还原出的资源路径,并根据还原出的域名及还原出的资源路径在目标应用环境中进行查询处理。
139.为了保证查询处理的准确性,代理设备可以对还原出的url进行进一步还原,得到还原出的域名及还原出的资源路径。在该过程中,首先可以根据域名分隔符对还原出的url进行拆分处理,得到候选域名及候选资源路径,例如可以将还原出的url中位于第一个域名分隔符之前的内容作为候选域名,将还原出的url中位于第一个域名分隔符之后的内容作为候选资源路径。
140.值得说明的是,若用于对还原出的url进行拆分处理的域名分隔符为特殊的设定域名分隔符,则得到的候选域名可能还包括有默认域名分隔符。对于该情况,可以根据默认域名分隔符对候选域名进行拆分处理,即是将候选域名中位于第一个默认域名分隔符之后的内容添加至候选资源路径中,如添加至候选资源路径的首部,并将候选域名中位于第一个默认域名分隔符之前的内容作为新的候选域名。
141.当候选域名包括参数标识时,证明参数标识所标识的参数并不属于实际的域名,因此,删除候选域名中的参数标识、以及被参数标识所标识的参数,并将删除的参数标识以及删除的参数添加至候选资源路径中,如添加至候选资源路径的首部。其中,参数标识如“?”标识。举例来说,候选域名为now8_gtimg_com?id=123,则删除候选域名中的?id=123,并将?id=123添加至候选资源路径的首部,以实现对候选资源路径的更新。
142.当候选域名与非域名格式匹配成功时,将候选域名从非域名格式转换为域名格式。举例来说,候选域名为now8_gtimg_com,则将候选域名中的设定内部分隔符“_”(对应非域名格式)转换为默认内部分隔符“.”(对应域名格式),即是将候选域名更新为now8.gtimg.com。
143.最终,将候选域名作为还原出的域名(即原始域名),将候选资源路径作为还原出的资源路径(即原始资源路径),并根据还原出的域名及还原出的资源路径在目标应用环境中进行查询处理。通过上述方式,能够有效提升查询处理的成功率和准确率。
144.在一些实施例中,步骤102之前,还包括:将默认域名与代理域名进行绑定处理;将候选域名作为还原出的域名之前,还包括:将候选域名与多个域名标识进行匹配处理;当候选域名与多个域名标识均匹配失败时,将候选域名添加至候选资源路径中,并将与代理域名存在绑定关系的默认域名作为新的候选域名。
145.这里,代理设备可以将候选域名与设定的多个域名标识进行匹配处理,域名标识可以根据实际应用场景进行设定,例如可以包括“com”、“edu”、“gov”及“cn”等。当候选域名
与任意一个域名标识匹配成功(即候选域名包括任意一个域名标识)时,可以将候选域名作为还原出的域名;当候选域名与所有域名标识均匹配失败时,证明候选域名实际上并不是域名,故将候选域名添加至候选资源路径中,如添加至候选资源路径的首部,并将与代理域名存在绑定关系的默认域名作为新的候选域名。通过上述方式,能够提升还原出的域名及还原出的资源路径的准确性。
146.在步骤303中,根据代理域名对查询处理得到的应用资源的url进行更新处理。
147.查询处理得到的应用资源即为访问请求所请求的应用资源,这里,代理设备从目标应用环境中获取查询处理得到的应用资源,并对获取到的应用资源中的url进行更新处理。
148.在步骤304中,根据包括更新后的url的应用资源响应访问请求。
149.如图3c所示,本技术实施例对访问请求中的url进行还原,并根据还原出的url在目标应用环境中进行查询处理,能够提升资源访问的准确性。
150.在一些实施例中,参见图3d,图3d是本技术实施例提供的应用资源的代理方法的一个流程示意图,图3a示出的步骤101可以通过步骤401至步骤405实现,将结合各步骤进行说明。
151.在步骤401中,获取待绑定的代理域名。
152.例如,代理设备可以呈现域名申请界面,并将在域名申请界面接收到的代理域名,作为待绑定的代理域名。
153.在步骤402中,获取已创建的管理目录对应的已有代理域名。
154.这里,代理设备获取已创建的管理目录对应的代理域名,为了便于区分,将该步骤中获取到的代理域名命名为已有代理域名。其中,一个管理目录可以对应一个代理域名。
155.在步骤403中,根据已有代理域名对待绑定的代理域名进行验证处理,得到域名验证结果。
156.例如,代理设备可以确定已有代理域名与待绑定的代理域名之间的相似度。当待绑定的代理域名与所有已有代理域名之间的相似度均小于相似度阈值时,确定域名验证结果为验证成功;当待绑定的代理域名与任意一个已有代理域名之间的相似度大于或等于相似度阈值时,确定域名验证结果为验证失败。其中,相似度阈值可以根据实际应用场景进行设定,如设定为100%。
157.在步骤404中,当域名验证结果为验证成功时,创建与代理域名对应的管理目录。
158.当域名验证结果为验证失败时,代理设备可以输出修改提示(例如将修改提示呈现于域名申请界面中),以提示修改待绑定的代理域名;当域名验证结果为验证成功时,代理设备创建与待绑定的代理域名对应的管理目录。通过该方式,能够保证待绑定的代理域名的独特性,避免待绑定的代理域名与已有代理域名过于相似(或相同)。
159.当然,在本技术实施例中,也可以不对待绑定的代理域名进行验证处理,直接创建与待绑定的代理域名对应的管理目录。
160.在步骤405中,响应于在管理目录中创建多个应用环境的操作,建立多个应用环境与代理域名之间的绑定关系。
161.例如,代理设备可以呈现管理目录对应的环境创建界面,并响应于在环境创建界面中创建多个应用环境的操作,建立创建的多个应用环境与待绑定的代理域名之间的绑定
关系,即实现绑定处理。
162.如图3d所示,本技术实施例通过创建管理目录的方式实现绑定处理,能够提升绑定处理的简便性,同时提升建立的绑定关系的稳定性和可追溯性。
163.在一些实施例中,参见图3e,图3e是本技术实施例提供的应用资源的代理方法的一个流程示意图,图3a示出的步骤103可以通过步骤501或步骤502实现,在步骤501中,将与代理域名存在绑定关系的多个应用环境中的默认应用环境,作为访问请求所请求的目标应用环境;其中,默认应用环境是多个应用环境中的任意一个。
164.这里,可以预先设定与代理域名存在绑定关系的多个应用环境中的默认应用环境,该默认应用环境可以是多个应用环境中的任意一个,例如可以是创建时间最早的应用环境。代理设备在接收到url包括代理域名的访问请求时,可以将默认应用环境直接作为访问请求所请求的目标应用环境。
165.在步骤502中,获取访问请求中的应用环境信息,并将与代理域名存在绑定关系且与应用环境信息匹配成功的应用环境,作为访问请求所请求的目标应用环境。
166.这里,当访问请求携带有应用环境信息时,代理设备可以在与代理域名存在绑定关系的多个应用环境中,确定出与应用环境信息匹配成功的应用环境,以作为访问请求所请求的目标应用环境,即目标应用环境的应用环境信息与访问请求中的应用环境信息匹配成功(如相同)。本技术实施例对应用环境信息的形式不做限定,例如可以包括应用环境名称。通过上述方式,能够提升确定目标应用环境的灵活性。
167.在图3e中,图3a示出的步骤103之后,还可以在步骤503中,响应于针对目标应用环境的切换操作,呈现与代理域名存在绑定关系的多个应用环境。
168.例如,代理设备可以呈现一个切换标识,并在接收到针对切换标识的触发操作时,呈现与代理域名存在绑定关系的多个应用环境,其中,针对切换标识的触发操作即为针对目标应用环境的切换操作。
169.在步骤504中,响应于针对多个应用环境的选中操作,将被选中的应用环境作为新的目标应用环境。
170.这里,代理设备在接收到针对呈现的多个应用环境的选中操作(如点击操作)时,将被选中的应用环境作为新的目标应用环境。值得说明的是,步骤503和步骤504也可以在步骤104之后执行。值得说明的是,切换标识也可以由客户端呈现,代理设备可以将客户端接收到的针对切换标识的触发操作,作为针对目标应用环境的切换操作,并将与代理域名存在绑定关系的多个应用环境的应用环境信息发送至客户端,以便用户在客户端执行选中操作。
171.如图3e所示,本技术实施例提供了确定目标应用环境的两种方式,提升了灵活性;还提供了切换目标应用环境的方式,能够便利、快捷地切换目标应用环境。
172.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用,为了便于理解,以被代理的应用是web应用为例进行说明。本技术实施例提供了一种灵活的基于更新url实现web资源(即web应用中的应用资源)代理的方案,可以在保持代理域名不变的情况下,快捷、灵活地切换不同的应用环境,极大地提升web应用在pc及移动端的开发、测试和产品走查等环节中的效率和体验。
173.接下来,从可视化的角度进行说明。本技术实施例提供了如图5所示的域名申请界
面的示意图,管理平台可以通过呈现域名申请界面51,从而将在域名申请界面51中接收到的代理域名与默认域名进行绑定处理,其中,管理平台可以是代理设备所提供的专用于实现代理功能的平台。作为示例,在图5中示出了代理域名fastest.now.xx.com,默认域名为now.xx.com,此外,还可以在域名申请界面51中接收应用名,如图5中的now应用。
174.本技术实施例提供了如图6所示的空间申请界面的示意图,管理平台可以通过呈现空间申请界面61,并根据在空间申请界面61中接收到的空间名称、空间logo以及空间描述,创建相应的管理空间,其中,管理空间是用于管理web应用的所有应用环境的聚合类,对应上文的管理目录。作为示例,图6中示出了空间名称为now应用、空间logo为“https://nowpic.gtimg.com/feeds_pic/
……”
所指向的图像资源,空间描述为now应用管理空间。值得说明的是,空间logo和空间描述不是创建管理空间的必要信息。
175.本技术实施例提供了如图7所示的域名绑定界面的示意图,完成管理空间的创建之后,管理平台可以呈现管理空间对应的域名绑定界面71,并响应于在域名绑定界面71中输入代理域名的操作,将管理空间与输入的代理域名进行绑定处理。作为示例,图7中示出了将空间名称为now应用的管理空间、应用名now应用、代理域名fastest.now.xx.com以及默认域名now.xx.com建立绑定关系。值得说明的是,图7中还示出了白名单控制的选项,在接收到针对该选项的触发操作时,可以呈现白名单配置界面,以便于用户在白名单配置界面中配置各个应用环境对应的白名单。
176.本技术实施例提供了如图8所示的环境创建界面的示意图,管理平台可以呈现管理空间对应的环境创建界面81,并根据在环境创建界面81接收到的应用环境信息,创建web应用(即now应用)的应用环境。作为示例,图8中示出了应用环境信息包括应用环境名称、应用环境类型、应用环境状态、规则编辑模式以及应用环境描述,其中,应用环境描述不是创建应用环境的必要信息,其中,应用环境类型可以包括互联网数据中心(internet data center,idc)应用环境及devnet应用环境等,根据实际采用的网络策略而定;应用环境状态可以包括启用和未启用;规则编辑模式可以包括表单编辑模式及编辑器编辑模式等,表单编辑模式是指用输入文本的形式编辑代理规则,编辑器编辑模式是指通过输入代码来编辑代理规则。
177.在完成应用环境的创建后,管理平台可以在环境管理界面中呈现已创建的多个应用环境,如图9中的环境管理界面91示出的“[1328]通用201环境”,其中,“1328”为应用环境的编号,“通用201环境”为应用环境名称。在环境管理界面91中,还示出了“创建环境”的选项和“创建规则”的选项92,在接收到针对“创建规则”的选项92的触发操作(如点击操作)时,可以呈现代理规则配置界面。在图9中,示出了以窗口形式呈现的代理规则配置界面93,当然代理规则配置界面93也可以是以一个独立界面的形式进行呈现。代理规则配置界面93中所应用的编辑模式为表单编辑模式,可以支持对代理规则、代理规则对应的应用环境、规则状态、规则别称以及权重进行配置,其中,代理规则对应上文的待代理内容,权重对应上文的优先级。
[0178]
本技术实施例还提供了如图10所示的代理规则管理界面101,用于对已配置(已创建)的代理规则进行管理,管理的操作包括但不限于禁止(即不启用)、编辑及删除。值得说明的是,管理平台可以将以上示出的界面的相关数据发送至客户端,从而在客户端中进行呈现。
[0179]
以上步骤完成后,客户端可以通过代理域名来访问web应用中的应用资源,例如客户端可以在浏览器的地址栏中输入fastest.now.xx.com/demo.html的url,以生成包括该url的访问请求。管理平台拦截到该访问请求,将与代理域名fastest.now.xx.com存在绑定关系的多个应用环境中的默认应用环境作为目标应用环境,根据代理域名对目标应用环境中应用资源的url进行更新处理,并根据包括更新后的url的应用资源响应访问请求。
[0180]
客户端在接收到包括更新后的url的应用资源时,可以呈现于浏览器界面中。图11示例性地示出了浏览器界面111,其中包括如“文件1”和“文件2”的应用资源。浏览器界面111中还示出了齿轮形状的切换标识112,客户端在接收到针对切换标识112的触发操作时,可以在浏览器界面111中呈现与代理域名存在绑定关系的多个应用环境的应用环境信息。然后,客户端响应于针对多个应用环境的选中操作,将被选中的应用环境作为新的目标应用环境,如此,可以方便、快捷地实现目标应用环境的切换。在切换目标应用环境后,客户端仍可以使用fastest.now.xx.com/demo.html的url进行访问,即无需频繁切换url,因此能够方便地进行web应用的开发、测试和产品体验。
[0181]
接下来,从底层实现的角度进行说明。本技术实施例提供了如图12所示的应用资源的代理方法的流程示意图,首先,客户端可以访问代理域名,即发送url包括代理域名的访问请求,访问请求可以经过负载均衡后到达接入层,其中,负载均衡如全局负载均衡(global server load balance,gslb)。接入层可以部署用于提供安全防护功能的防火墙,经过安全防护后,接入层可以将访问请求发送至转发机,并由转发机转发至管理平台的网关,其中,转发机如nginx转发机。网关根据访问请求中的访问身份信息(如cookie),从管理平台的数据服务中获取根据访问身份信息可访问的应用环境,其中,数据服务用于存储每个应用环境与可访问该应用环境的身份信息之间的对应关系。网关在获取可访问的应用环境之前,还可以对访问身份信息进行验证处理,以判断访问身份信息是否安全。
[0182]
当可访问的应用环境的数量为零,即不存在可访问的应用环境时,网关可以将无权限访问的提示发送至客户端,客户端可以呈现包括无权限访问的提示的无权限界面。当可访问的应用环境的数量为至少一个时,网关可以在可访问的应用环境中确定目标应用环境,并获取目标应用环境对应的代理规则。同时,网关通过应用环境管理工具,在目标应用环境中进行查询处理,以查询访问请求所请求的应用资源,其中,应用环境管理工具如nohost工具。
[0183]
针对查询处理得到的应用资源,网关首先判断其是否包括url。若应用资源未包括url,则网关直接将该应用资源发送至客户端;若应用资源包括url(例如html、css及javascript等应用资源),则网关根据目标应用环境对应的代理规则,对应用资源中的url进行更新处理,并将包括更新后的url的应用资源发送至客户端。客户端可以呈现接收到的应用资源,完成应用资源访问。
[0184]
根据图12可以确定,本技术实施例的核心在于对url进行更新处理以及对更新后的url进行还原处理两部分,接下来进行分别说明。
[0185]
1)对url进行更新处理。
[0186]
对于获取到的包括url的应用资源,网关可以先将应用资源的格式从stream格式转换为buffer格式,再从buffer格式转换为string格式,其中,转换成string格式的原因在于,使用string格式进行更新处理更为方便、快捷。
[0187]
对于string格式的应用资源,网关根据代理规则对应用资源中的url进行更新处理。为了便于理解,后文以代理域名为fastest.now.xx.com,默认域名为now.xx.com,代理规则为now8.gtimg.com的情况进行举例说明。若应用资源中的url为now8.gtimg.com/test.js,则根据代理规则经过更新处理后,可以得到更新后的url为fastest.now.xx.com/_tde_/now8_gtimg_com/_tde_/test.js,其中,“_tde_”是特殊的设定域名分隔符,当然,也可以使用url中的默认域名分隔符“/”。另外,在更新处理时,将now8.gtimg.com中的默认内部分隔符“.”替换成特殊的设定内部分隔符,即下划线“_”,因为在更新后的url中,域名实则是fastest.now.xx.com,而不再是now8.gtimg.com。
[0188]
值得说明的是,now8.gtimg.com并非是默认域名,因此更新后的url中仍保留有now8_gtimg_com。如果是对默认域名进行更新处理,例如应用资源的url为now.xx.com/cgi-bin/test,则更新后的url可以为fastest.now.xx.com/_tde_/cgi-bin/test,即更新后的url不再保留默认域名。
[0189]
同时,在应用资源为html资源的情况下,由于修改了应用资源的内容,故还可以删除应用资源的script标签中的integrity属性和crossorgin属性,以避免script标签加载失败。其中,integrity属性用于阻挡修改应用资源的内容;crossorgin属性用于在跨域请求下设置禁止携带cookie。
[0190]
此外,对于经过更新处理的html资源、javascript资源及css资源,还可以删除一些header,以避免客户端加载应用资源失败。需要删除的header可以包括content-security-policy、content-encoding以及content-length,其中,content-security-policy用于限制应用资源的加载来源,即只能加载同源的应用资源,不支持加载代理的应用资源;content-encoding用于表示应用资源的压缩编码,由于在更新处理的过程中会解压应用资源后再次压缩,因此实际的压缩编码会跟content-encoding中的压缩编码存在出入,会导致报错;content-length用于表示应用资源的内容长度,经过更新处理后,应用资源实际的内容长度会与content-length标明的内容长度存在差异,会导致报错。
[0191]
2)对url进行还原处理。
[0192]
这里,对客户端发送的url进行还原处理,以保证能够查询到正确的应用资源。例如,访问请求中的url为fastest.now.xx.com/_tde_/now8_gtimg_com/_tde_/index,还原出的url为now8.gtimg.com/index;访问请求中的url为fastest.now.xx.com/_tde_/now8_gtimg_com,还原出的url为now8.gtimg.com;访问请求中的url为fastest.now.xx.com/_tde_/now8_gtimg_com/_tde_?_tde_id=123,还原出的url为now8.gtimg.com?_tde_id=123。
[0193]
这里,以步骤形式说明还原处理的实现过程。
[0194]
步骤

:针对访问请求中的url,拆分出位于第一个设定域名分隔符“_tde_”之后、且位于第二个“_tde_”之前的内容,以作为候选域名;拆分出位于第二个“_tde_”之后的内容,以作为候选资源路径。其中,访问请求的url中位于第一个“_tde_”之前的内容为代理域名。
[0195]
步骤

:当候选域名包括默认域名分隔符“/”,证明候选域名中的一部分实际上是属于实际的资源路径,则将候选域名中位于第一个“/”之后的内容进行删除,并将删除的内容添加至候选资源路径的首部,以对候选资源路径进行更新。
[0196]
步骤

:当候选域名包括参数标识“?”时,则删除候选域名中的参数标识以及参数标识之后的内容,并将这里删除的内容添加至候选资源路径的首部,以对候选资源路径进行更新。
[0197]
步骤

:将候选域名中的下划线符号“_”更新为“.”,将候选域名作为还原出的域名,将候选资源路径作为还原出的资源路径,完成还原处理。
[0198]
在得到还原出的域名和还原出的资源路径后,即可进行查询处理,以得到访问请求所请求的应用资源。
[0199]
通过本技术实施例,至少能够实现以下技术效果:1)不受网络环境影响,客户端在内网(如局域网)和外网(如广域网)均可实现对应用资源的访问;2)不需要申请多个代理域名,仅需一个代理域名即可访问多个不同的应用环境;3)极大减少访问应用环境所需要的操作(例如部署复杂的代理工具),只需向客户端提供更新后的url(或者代理域名)即可。
[0200]
下面继续说明本技术实施例提供的应用资源的代理装置455实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的应用资源的代理装置455中的软件模块可以包括:绑定模块4551,用于将多个应用环境与同一个代理域名进行绑定处理;接收模块4552,用于接收统一资源定位符url包括代理域名的访问请求;环境确定模块4553,用于在与代理域名存在绑定关系的多个应用环境中,确定访问请求所请求的目标应用环境;更新模块4554,用于根据代理域名对目标应用环境中应用资源的url进行更新处理,并根据包括更新后的url的应用资源响应访问请求。
[0201]
在一些实施例中,更新模块4554,还用于:获取目标应用环境对应的包括域名的待代理内容;将目标应用环境中应用资源的url与待代理内容进行匹配处理,得到匹配结果;当匹配结果为匹配成功时,将代理域名添加至应用资源的url中,并根据域名分隔符将应用资源的url中的代理域名、待代理内容以及剩余内容进行分隔处理,得到更新后的url。
[0202]
在一些实施例中,目标应用环境对应的待代理内容的数量包括多个,且每个待代理内容对应一个优先级;更新模块4554,还用于:根据多个待代理内容对应的优先级的顺序,遍历多个待代理内容,并针对遍历到的待代理内容执行以下处理:将目标应用环境中应用资源的url与遍历到的待代理内容进行匹配处理。
[0203]
在一些实施例中,绑定模块4551,还用于:将默认域名与代理域名进行绑定处理;更新模块4554,还用于:当待代理内容包括与代理域名存在绑定关系的默认域名、且匹配结果为匹配成功时,对应用资源的url中的默认域名进行删除处理,以更新应用资源的url中的待代理内容。
[0204]
在一些实施例中,更新模块4554,还用于:当匹配结果为匹配成功时,针对应用资源的url中的待代理内容所包括的域名,将域名从域名格式转换为非域名格式,以更新应用资源的url中的待代理内容。
[0205]
在一些实施例中,应用资源的代理装置455还包括还原模块,用于根据域名分隔符对访问请求中的url进行拆分处理,得到代理域名以及还原出的url;更新模块4554,还用于:根据还原出的url在目标应用环境中进行查询处理;根据代理域名对查询处理得到的应用资源的url进行更新处理。
[0206]
在一些实施例中,更新模块4554,还用于:根据域名分隔符对还原出的url进行拆分处理,得到候选域名及候选资源路径;当候选域名包括参数标识时,删除候选域名中的参
数标识以及被参数标识所标识的参数,并将删除的参数标识及参数添加至候选资源路径中;当候选域名与非域名格式匹配成功时,将候选域名从非域名格式转换为域名格式;将候选域名作为还原出的域名,将候选资源路径作为还原出的资源路径,并根据还原出的域名及还原出的资源路径在目标应用环境中进行查询处理。
[0207]
在一些实施例中,绑定模块4551,还用于:将默认域名与代理域名进行绑定处理;更新模块4554,还用于:将候选域名与多个域名标识进行匹配处理;当候选域名与多个域名标识均匹配失败时,将候选域名添加至候选资源路径中,并将与代理域名存在绑定关系的默认域名作为新的候选域名。
[0208]
在一些实施例中,绑定模块4551,还用于:获取待绑定的代理域名;创建与代理域名对应的管理目录;响应于在管理目录中创建多个应用环境的操作,建立多个应用环境与代理域名之间的绑定关系。
[0209]
在一些实施例中,绑定模块4551,还用于:获取已创建的管理目录对应的已有代理域名;根据已有代理域名对待绑定的代理域名进行验证处理,得到域名验证结果;当域名验证结果为验证成功时,创建与代理域名对应的管理目录。
[0210]
在一些实施例中,环境确定模块4553,还用于:执行以下任意一种处理:获取访问请求中的应用环境信息,并将与代理域名存在绑定关系且与应用环境信息匹配成功的应用环境,作为访问请求所请求的目标应用环境;将与代理域名存在绑定关系的多个应用环境中的默认应用环境,作为访问请求所请求的目标应用环境;其中,默认应用环境是多个应用环境中的任意一个。
[0211]
在一些实施例中,环境确定模块4553,还用于:响应于针对目标应用环境的切换操作,呈现与代理域名存在绑定关系的多个应用环境;响应于针对多个应用环境的选中操作,将被选中的应用环境作为新的目标应用环境。
[0212]
在一些实施例中,环境确定模块4553,还用于:获取访问请求中的访问身份信息,并对访问身份信息进行验证处理得到身份信息验证结果;当身份信息验证结果为验证成功时,在与代理域名存在绑定关系的多个应用环境中,确定出根据访问身份信息可访问的应用环境;其中,每个应用环境对应至少一个可访问的身份信息;在至少一个可访问的应用环境中,确定访问请求所请求的目标应用环境。
[0213]
在一些实施例中,更新模块4554,还用于删除应用资源包括的以下属性中的至少之一:禁止更新属性、禁止身份属性、禁止代理属性、内容编码属性以及内容长度属性。
[0214]
在一些实施例中,更新模块4554,还用于根据目标应用环境中包括更新后的url的应用资源、以及未包括url的应用资源,响应访问请求。
[0215]
本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的应用资源的代理方法。
[0216]
本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的方法,例如,如图3a、图3b、图3c、图3d及图3e示出的应用资源的代理方法。
[0217]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪
存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0218]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0219]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0220]
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0221]
以上,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1