CN111953742B - 一种页面重定向方法、终端设备、中间设备及服务器 - Google Patents
一种页面重定向方法、终端设备、中间设备及服务器 Download PDFInfo
- Publication number
- CN111953742B CN111953742B CN202010708440.8A CN202010708440A CN111953742B CN 111953742 B CN111953742 B CN 111953742B CN 202010708440 A CN202010708440 A CN 202010708440A CN 111953742 B CN111953742 B CN 111953742B
- Authority
- CN
- China
- Prior art keywords
- redirection
- data
- terminal equipment
- website
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开一种页面重定向方法、终端设备、中间设备及服务器,该方法包括:终端设备与服务器建立第一通信连接时,向服务器发送携带网站域名信息数据包;当中间设备基于数据包中的网站域名信息确定对终端设备进行网站访问重定向时,终端设备与中间设备建立第二通信连接,并接收中间设备发送的重定向数据,基于重定向数据显示重定向页面。如此,由于终端设备与服务器建立连接,节省因NAT代理而消耗大量系统资源;且终端设备向服务器进行网站访问请求,由中间设备确定对终端设备进行网站访问重定向时,才触发重定向操作,并向终端设备发送重定向数据,这样,避免不需重定向时做额外连接处理,进而节省连接处理带来的资源损耗。
Description
技术领域
本申请涉及互联网技术,尤其涉及一种页面重定向方法、终端设备、中间设备及服务器。
背景技术
重定向(Redirect)就是将网络请求重新定个方向转到其他位置,比如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向。
现有技术中的页面重定向方法是利用中间设备与客户端建立传输控制协议(Transmission Control Protocol,TCP)、安全套接字协议(Secure Sockets Layer,SSL)的握手连接。在客户端向服务器发出页面访问请求时,中间设备都需要在TCP的首个同步序列编号(Synchronize Sequence Numbers,SYN)数据包进行网络地址转换(NetworkAddress Translation,NAT)代理,此时中间设备还没有获取SSL握手时的服务器域名信息(Server Name Indication,SNI),进而无法对重定向进行判断,这样,一旦需要重定向便会浪费由于NAT代理而消耗的大量系统资源。
发明内容
为解决上述技术问题,本申请提供一种页面重定向方法、终端设备、中间设备及服务器。
本申请的技术方案是这样实现的:
第一方面,提供了一种页面重定向方法,应用于终端设备,方法包括:
与服务器通过第一通信协议建立第一通信连接;
向所述服务器发送携带网站域名信息的数据包;
当中间设备获取所述数据包,并基于所述网站域名信息确定对所述终端设备进行网站访问重定向时,通过第二通信协议与所述中间设备建立第二通信连接;
接收所述中间设备发送的所述网站域名信息对应的重定向数据,并基于所述重定向数据显示重定向页面。
第二方面,提供了一种页面重定向方法,应用于中间设备,方法包括:
终端设备与服务器通过第一通信协议建立第一通信连接时,获取所述终端设备向所述服务器发送的携带网站域名信息的数据包;
基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,生成所述网站域名信息对应的重定向数据,并通过第二通信协议与所述终端设备建立第二通信连接;
向所述终端设备发送所述重定向数据,以使得所述终端设备基于所述重定向数据显示重定向页面。
第三方面,提供了一种页面重定向方法,应用于服务器,方法包括:
与终端设备通过第一通信协议建立第一通信连接;
若接收到中间设备发送的第三断开连接指令,断开与所述终端设备的所述第一通信连接;
其中,所述第三断开连接指令是所述中间设备在确定对所述终端设备进行网站访问重定向情况下发送的。
第四方面,提供了一种终端设备,终端设备包括:
第一处理单元,用于与服务器通过第一通信协议建立第一通信连接;
第一发送单元,用于向所述服务器发送携带网站域名信息的数据包;
所述第一处理单元,还用于当中间设备获取所述数据包,并基于所述网站域名信息确定对所述终端设备进行网站访问重定向时,通过第二通信协议与所述中间设备建立第二通信连接;
第一接收单元,用于接收所述中间设备发送的所述网站域名信息对应的重定向数据,并基于所述重定向数据显示重定向页面。
第五方面,提供了一种中间设备,中间设备包括:
第二接收单元,用于终端设备与服务器通过第一通信协议建立第一通信连接时,获取所述终端设备向所述服务器发送的携带网站域名信息的数据包;
第二处理单元,用于基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,生成所述网站域名信息对应的重定向数据,并通过第二通信协议与所述终端设备建立第二通信连接;
第二发送单元,用于向所述终端设备发送所述重定向数据,以使得所述终端设备基于所述重定向数据显示重定向页面。
第六方面,提供了一种服务器,服务器包括:
第三处理单元,用于与终端设备通过第一通信协议建立第一通信连接;
所述第三处理单元,还用于若接收到中间设备发送的第三断开连接指令,断开与所述终端设备的所述第一通信连接;
其中,所述第三断开连接指令是所述中间设备在确定对所述终端设备进行网站访问重定向情况下发送的。
第七方面,提供了一种页面重定向设备,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器配置为运行所述计算机程序时,执行前述方法的步骤。
第八方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。
采用上述技术方案,与服务器通过第一通信协议建立第一通信连接;向所述服务器发送携带网站域名信息的数据包;当中间设备获取所述数据包,并基于所述网站域名信息确定对所述终端设备进行网站访问重定向时,通过第二通信协议与所述中间设备建立第二通信连接;接收所述中间设备发送的所述网站域名信息对应的重定向数据,并基于所述重定向数据显示重定向页面。如此,由于终端设备与服务器建立连接,节省因NAT代理而消耗大量系统资源;且终端设备向服务器进行网站访问请求,由中间设备确定对终端设备进行网站访问重定向时,才触发重定向操作,并向终端设备发送重定向数据,这样,避免不需重定向时做额外连接处理,进而节省连接处理带来的资源损耗。
附图说明
图1为本申请实施例中页面重定向方法的第一流程示意图;
图2为本申请实施例中对网址A的重定向页面;
图3为本申请实施例中页面重定向方法的第二流程示意图;
图4为本申请实施例中页面重定向方法的第三流程示意图;
图5为本申请实施例中终端设备、中间设备和服务器三者交互结构示意图;
图6为本申请实施例中页面重定向方法的内核驱动层的数据处理流程示意图;
图7为本申请实施例中页面重定向方法的应用层的数据处理流程示意图;
图8为本申请实施例中终端设备的第一结构示意图;
图9为本申请实施例中中间设备的第一结构示意图;
图10为本申请实施例中服务器的第一结构示意图;
图11为本申请实施例中终端设备的第二结构示意图;
图12为本申请实施例中中间设备的第二结构示意图;
图13为本申请实施例中服务器的第二结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
本申请实施例提供了一种页面重定向方法,图1为本申请实施例中页面重定向方法的第一流程示意图,如图1所示,该页面重定向方法具体可以包括:
步骤101:与服务器通过第一通信协议建立第一通信连接;
需要说明的是,这里的终端设备可以是笔记本电脑、平板电脑、手机等具备联网功能的移动设备,终端设备还包括用于显示网络页面的显示单元;服务器用于向终端设备返回终端设备进行网站访问不需要重定向时所对应的真实页面数据。第一通信连接指的是终端设备与服务器之间通过第一通信协议建立的通信连接。
相关技术中的页面重定向方法是利用中间设备与客户端建立TCP、SSL握手连接,在客户端向服务器发出页面访问请求时,中间设备都需要在TCP的首个SYN数据包进行NAT代理,此时,中间设备还没有获取SSL握手时的SNI信息,无法对重定向进行判断;也就是说,不管当前客户端所发起的页面访问请求是否需要做重定向,NAT代理均执行,这样,当客户端进行网站访问不需要重定向时,基于中间设备去访问服务器并获取页面数据,进而将页面数据发送至客户端进行显示,此过程是需要基于NAT代理去间接访问服务器;当客户端进行网站访问需要重定向时,终端设备也就不需要间接访问服务器,是直接与中间设备进行数据交互,那么在TCP的首个SYN数据包进行NAT代理属于非必要过程,进而消耗大量的系统资源。
因此,为避免因NAT代理而消耗系统资源,该步骤基于第一通信协议建立终端设备与服务器的第一通信连接;这样,在判断终端设备是否需要重定向之前,均不需要进行NAT代理的,所以说,可避免消耗大量系统资源。
步骤102:向所述服务器发送携带网站域名信息的数据包;
需要说明的是,数据包中的网站域名信息可确定终端设备进行网站访问是否需要重定向。
步骤103:当中间设备获取所述数据包,并基于所述网站域名信息确定对所述终端设备进行网站访问重定向时,通过第二通信协议与所述中间设备建立第二通信连接;
需要说明的是,中间设备是用于获取终端设备向服务器发送的数据包,且基于该数据包检测到终端设备进行网站访问需要重定向时,还用于生成重定向数据。第二通信连接指的是终端设备与中间设备之间通过第二通信协议建立的通信连接。
这里,重定向指的是当前所访问的页面可能因为没有访问权限而不能够访问,此时需要对真实访问的页面进行重定向,用其余页面内容代替所访问的真实页面;其余页面内容可以为提示用户不能够访问的原因。重定向数据用于提示用户不能够访问当前网站的原由。
实际应用中,终端设备向服务器发送携带网站域名信息的数据包时,该数据包会经过中间设备,中间设备判断终端设备基于该数据包中的网站域名信息进行网站访问是否需要重定向。当终端设备进行网站访问需要重定向时,终端设备需要与中间设备建立第二通信连接,终端设备获取中间设备生成的重定向数据,进而后续可基于重定向数据显示重定向页面。
当终端设备进行网站访问不需要重定向时,此时终端设备不需要与中间设备建立第二通信连接,直接基于第一通信连接向服务器发起网站访问请求,并获取服务器返回的真实页面数据,进而基于真实页面数据显示真正的页面。
步骤104:接收所述中间设备发送的所述重定向数据,并基于所述重定向数据显示重定向页面。
需要说明的是,执行该步骤即表明需要对终端设备网站访问请求进行重定向,终端设备接收中间设备发送的重定向数据,并基于重定向数据显示重定向页面。
在一些实施例中,所述接收所述中间设备发送的所述网站域名信息对应的重定向数据之前,所述方法还包括:向所述中间设备发起网站访问请求,以使得所述中间设备在所述网站访问请求满足预设的重定向条件时,将所述重定向数据发送给所述终端设备。
需要说明的是,终端设备向中间设备发起网站访问请求的前提条件为:终端设备需与中间设备建立第二通信连接,此时中间设备可以充当服务器与终端设备进行交互,并向终端设备返回重定向数据。
实际应用中,当终端设备与中间设备之间的第二通信连接建立成功之后,终端设备向中间设备发起网站访问请求,使得中间设备响应该网站访问请求,确定该网站访问请求满足预设的重定向条件时,将所生成的重定向数据发送至终端设备,便于终端设备后续基于该重定向数据显示重定向页面。
示例性的,当用户访问网站A时,访问被拒绝,出现图2所示的页面,说明网络管理员可能对访问网站A进行了权限设置,图2所示的页面即为管理员设置的重定向页面,页面内容为:“您尝试访问的网站类型属于[]已经被上网策略[]拒绝访问。如果有疑问,请联系网络管理员”。其中,这里的页面内容即为重定向数据。
在一些实施例中,所述接收所述中间设备发送的所述网站域名信息对应的重定向数据之后,所述方法还包括:向所述中间设备发送第一断开连接指令;接收到所述中间设备返回的响应所述第一断开连接指令的断开确认指令时,断开与所述中间设备之间的所述第二通信连接。
需要说明的是,第一断开连接指令用于指示中间设备断开与终端设备之间的第二通信连接。
实际应用中,终端设备是基于与中间设备之间的第二通信连接,接收到中间设备发送的重定向数据,那么,当终端设备获取到重定向数据后,第二通信连接也就没必要存在了,存在只能进一步浪费系统资源;因此,为避免系统资源的浪费,终端设备需向中间设备发送第一断开连接指令,当接收到中间设备返回的响应第一断开连接指令的断开确认指令时,说明终端设备与中间设备之间的第二通信连接已断开。
在一些实施例中,所述向所述中间设备发起网站访问请求之后,所述方法还包括:所述网站访问请求不满足所述重定向条件时,接收所述中间设备发送第二断开连接指令;响应所述第二断开连接指令,断开与所述中间设备之间的所述第二通信连接;显示网络故障页面。
需要说明的是,第二断开连接指令用于指示终端设备断开与中间设备之间的第二通信连接,并显示预设的表征网络故障的页面。
实际应用中,中间设备获取到网站访问请求后,对该网站访问请求进行解析,解析时可能因为网络故障导致解析结果错误,使得网站访问请求不满足重定向条件,这时,终端设备接收中间设备发送的第二断开连接指令并响应,使得终端设备与中间设备之间的第二通信连接断开;同时,终端设备会显示表征网络故障的页面,例如页面中显示“无法找到该网页”内容,用于提示用户当前网络存在故障,如再次访问之前,需检查网络连接状态,等待网络状态良好,再发起网站访问请求。
在一些实施例中,所述重定向条件为:解析后的所述网络访问请求中包含html文件。
需要说明的是,一个页面的显示需要html文件。当解析后的网络访问请求中包含html文件,说明当前通信连接正常,且网站访问请求是完整的,说明终端设备是可以获取重定向数据并显示重定向页面的。当解析后的网络访问请求中不包含html文件,说明当前通信连接发生故障,且网站访问请求是不完整的,即终端设备不能够获取重定向数据,会显示关于网络故障的页面,提示用户当前网络出现故障。
在一些实施例中,所述第一通信协议为传输控制协议(Transmission ControlProtocol,TCP);所述第二通信协议为安全套接字协议(Secure Sockets Layer,SSL)。
需要说明的是,由于SSL通信协议依赖于TCP连接实施,所以在SSL握手之前需要先建立TCP连接。
实际应用中,TCP通信无法保证数据的安全,可能随时被第三方获取而泄露通信双方之间的隐私,因此,通常使用SSL通信协议来建立安全保密的通信,SSL通信协议能够保证交互双方的数据按照密文方式传输,第三方在没有私钥的情况下几乎无法破解,从而达到保密的目的。
这里,步骤101至步骤104的执行主体可以为终端设备的处理器。
采用上述技术方案,由于终端设备与服务器建立连接,节省因NAT代理而消耗大量系统资源;且终端设备向服务器进行网站访问请求,由中间设备确定对终端设备进行网站访问重定向时,才触发重定向操作,并向终端设备发送重定向数据,这样,避免不需重定向时做额外连接处理,进而节省连接处理带来的资源损耗。
图3为本申请实施例中页面重定向方法的第二流程示意图,应用于中间设备,如图3所示,该页面重定向方法具体可以包括:
步骤301:终端设备与服务器通过第一通信协议建立第一通信连接时,获取所述终端设备向所述服务器发送的携带网站域名信息的数据包;
需要说明的是,中间设备具备获取数据包功能。当终端设备基于第一通信连接向服务器发送携带网站域名信息的数据包时,会经过中间设备,此时中间设备会获取携带网站域名信息的数据包。
在一些实施例中,所述获取所述终端设备向所述服务器发送的携带网站域名信息的数据包,包括:所述中间设备的驱动层获取所述终端设备向所述服务器发送的所述数据包。
也就是说,终端设备向服务器发送携带网站域名信息的数据包时,中间设备会获取该数据包,具体的,是由中间设备的驱动层获取该数据包。
步骤302:基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,生成所述网站域名信息对应的重定向数据,并通过第二通信协议与所述终端设备建立第二通信连接;
需要说明的是,中间设备还具备生成重定向数据的功能。重定向数据用于提示用户不能够访问网站内容的原由。第二通信连接指的是终端设备与中间设备基于第二通信协议建立的通信连接。
实际应用中,中间设备会根据数据包中包含的网站域名信息,判断终端设备进行网站访问是否需要进行重定向。当终端设备进行网站访问重定向时,此时中间设备会充当服务器的功能,向终端设备返回重定向数据,使得终端设备基于重定向数据显示重定向页面。当终端设备进行网站访问不需要重定向时,终端设备可直接访问服务器。
具体的,中间设备基于网站域名信息判断终端设备进行网站访问需要进行重定向,此时中间设备会生成网站域名信息对应的重定向数据,并以接收的携带网站域名信息的数据包作为后续建立通信连接的数据来源,建立基于第二通信协议的第二通信连接。之后,终端设备直接向中间设备发起网站访问请求,中间设备向终端设备返回重定向数据,使得终端设备基于重定向数据显示重定向页面。
在一些实施例中,所述基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,生成所述网站域名信息对应的重定向数据,包括:在所述驱动层基于所述网站域名信息确定对所述终端设备进行网站访问重定向时,生成所述重定向数据;所述生成所述网站域名信息对应的重定向数据之后,所述方法还包括:基于应用层和驱动层之间的通信方式,所述驱动层将所述重定向数据发送至所述应用层,并存储至所述应用层。
也就是说,在中间设备的驱动层基于网站域名信息确定终端设备进行网站访问需要重定向时,生成重定向数据。基于应用层和驱动层之间的通信方式将驱动层的重定向数据发送至应用层并存储,便于后续终端设备向中间设备发起网站访问请求需要进行重定向时,可直接从应用层获取并发送至驱动层,进而基于驱动层将重定向数据发送至终端设备来实现重定向页面显示。
在一些实施例中,所述通过第二通信协议与所述终端设备建立第二通信连接之前,所述方法还包括:在所述中间设备的驱动层,基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,对所述终端设备与所述服务器之间的连接设置重定向标识;基于所述重定向标识,在所述驱动层与所述终端设备执行所述第二通信连接的握手数据包的交互。所述向所述终端设备发送所述重定向数据,包括:基于所述重定向标识,所述驱动层向所述终端设备发送所述重定向数据。
需要说明的是,当在中间设备的驱动层判断终端设备进行网站访问重定向时,对终端设备与服务器之间的连接关系设置重定向标识。其中,重定向标识用于后续建立第二通信连接过程中,可直接接收终端设备发送的数据包,快速完成握手操作;同时,基于重定向标识,中间设备再次接收终端设备发送的数据包时不需要再判断是否需要重定向;另外,基于重定向标识,中间设备的驱动层向终端设备发送重定向数据。
具体的,中间设备检测出终端设备进行网站访问重定向后,说明需要建立中间设备与终端设备的握手连接,此时中间设备向终端设备返回应答携带网站域名信息数据包的数据包;其中所应答的数据包中包含中间设备发送的公钥;终端设备基于重定向标识发送利用公钥加密的数据包,中间设备接收公钥加密的数据包,利用自身的公钥进行解密得到解密后的数据包,并将解密后的数据包发送至终端设备。若与终端设备的未加密之前的数据包内容一致,则中间设备与终端设备之间的第二通信连接成功。
在一些实施例中,所述确定对所述终端设备进行网站访问重定向之后,所述方法还包括:向所述服务器发送第三断开连接指令,使得所述服务器与所述终端设备断开所述第一通信连接。
需要说明的是,第三断开连接指令用于断开服务器与终端设备之间的第一通信连接。
实际应用中,当中间设备确定终端设备进行网站访问重定向,表示后续中间设备会具备充当服务器的功能,那么,之前建立的终端设备与服务器之间的第一通信连接也就没有必要存在,如果持续保持连接状态,会进一步浪费系统资源。因此,中间设备确定终端设备进行网站访问重定向时,会向服务器发送第三断开连接指令,以此来断开服务器与终端设备之间的第一通信连接。
步骤303:向所述终端设备发送所述重定向数据,以使得所述终端设备基于所述重定向数据显示重定向页面。
需要说明的是,执行该步骤即表明需要对终端设备网站访问请求进行重定向,此时中间设备向终端设备发送生成的重定向数据,以使得终端设备获取到重定向数据,并基于重定向数据显示重定向页面。
示例性的,当用户访问网站A时,访问被拒绝,网络管理员可能对访问网站A进行了权限设置,终端设备页面不会显示访问网站A请求对应的真实页面,而是将重定向后的页面显示。其中,重定向页面的内容可以是:“您尝试访问的网站类型属于[]已经被上网策略[]拒绝访问。如果有疑问,请联络管理员”,用于提示该员工不能够访问该网站的原因。
在一些实施例中,所述向所述终端设备发送所述重定向数据,包括:接收所述终端设备发送的网站访问请求;在所述网站访问请求满足预设的重定向条件时,向所述终端设备发送所述重定向数据。
需要说明的是,终端设备与中间设备之间的第二通信连接成功后,终端设备可向中间设备发起网站访问请求,此时,中间设备接收到网站访问请求后,会对该网站访问请求进行解析操作,当解析结果满足重定向条件时,中间设备生成重定向数据,并将重定向数据发送至终端设备。
在一些实施例中,所述向所述终端设备发送所述重定向数据,包括:所述中间设备的驱动层接收所述网站访问请求;基于应用层和驱动层之间的通信方式,所述驱动层将所述网站访问请求发送给所述应用层;所述应用层确定所述网站访问请求满足预设的重定向条件时,获取所述重定向数据,并向所述驱动层发送所述重定向数据;所述驱动层向所述终端设备发送所述重定向数据。
也就是说,终端设备向中间设备发起的网站访问请求,是由中间设备的驱动层接收。中间设备的驱动层基于应用层和驱动层之间的通信方式,将网站访问请求发送至应用层,由应用层确定网站访问请求满足重定向条件时,在应用层中获取重定向数据,并基于应用层和驱动层之间的通信方式将重定向数据发送至驱动层,最终由中间设备的驱动层完成与终端设备的数据交互。
上述提到的应用层和驱动层之间的通信方式可以为套接字(netlink)通信方式,用来实现用户进程与内核进程之间的通信。
在一些实施例中,所述向所述终端设备发送所述重定向数据之后,所述方法还包括:接收所述终端设备发送的第一断开连接指令;向所述终端设备返回响应所述第一断开连接指令的断开确认指令;并断开与所述终端设备之间的所述第二通信连接。
需要说明的是,第一断开连接指令用于指示中间设备断开与终端设备之间的第二通信连接。
实际应用中,第二通信连接目的在于终端设备向中间设备发起网站访问请求,当终端设备进行网站访问需要进行重定向时,终端设备接收到中间设备发送的重定向数据,并基于重定向数据显示重定向页面。进一步地,当终端设备得到重定向数据后,没有必要在保持与中间设备之间的第二通信连接,如果依然保持连接状态,会浪费系统资源。因此,中间设备向终端设备发送重定向数据之后,紧接着,中间设备会接收到终端设备发送的第一断开连接指令,并向终端设备返回响应第一断开连接指令的断开确认指令,以此来断开与终端设备之间的第二通信连接。
在一些实施例中,所述接收所述终端设备发送的网站访问请求之后,所述方法还包括:在所述网站访问请求不满足所述重定向条件时,向所述终端设备发送第二断开连接指令,以断开与所述终端设备之间的所述第二通信连接,并使得所述终端设备显示网络故障页面。
需要说明的是,第二断开连接指令用于指示终端设备断开与中间设备之间的第二通信连接,并显示预设的表征网络故障的页面。
实际应用中,中间设备获取到网站访问请求后,对该网站访问请求进行解析,解析时可能因为网络故障导致解析结果错误,使得网站访问请求不满足重定向条件,这时,中间设备向终端设备发送第二断开连接指令,使得中间设备与终端设备之间的第二通信连接断开;同时,终端设备会显示表征网络故障的页面,例如页面中显示“无法找到该网页”内容,用于提示用户当前网络存在故障,如再次访问之前,需检查网络连接状态,等待网络状态良好,再发起网站访问请求。
在一些实施例中,所述重定向条件为:解析后的所述网络访问请求中包含html文件。
需要说明的是,一个页面的显示需要html文件。当解析后的网络访问请求中包含html文件,说明当前通信连接正常,且网站访问请求是完整的,说明终端设备是可以获取重定向数据并显示重定向页面的。当解析后的网络访问请求中不包含html文件,说明当前通信连接发生故障,且网站访问请求是不完整的,即终端设备不能够获取重定向数据,会显示关于网络故障的页面,提示用户当前网络出现故障。
在一些实施例中,所述第一通信协议为传输控制协议(Transmission ControlProtocol,TCP);所述第二通信协议为安全套接字协议(Secure Sockets Layer,SSL)。
需要说明的是,由于SSL通信协议依赖于TCP连接实施,所以在SSL握手之前需要先建立TCP连接。
实际应用中,TCP通信无法保证数据的安全,可能随时被第三方获取而泄露通信双方之间的隐私,因此,通常使用SSL通信协议来建立安全保密的通信,SSL通信协议能够保证交互双方的数据按照密文方式传输,第三方在没有私钥的情况下几乎无法破解,从而达到保密的目的。
采用上述技术方案,由于终端设备与服务器建立连接,节省因NAT代理而消耗大量系统资源;且终端设备向服务器进行网站访问请求,由中间设备确定对终端设备进行网站访问重定向时,才触发重定向操作,并向终端设备发送重定向数据,这样,避免不需重定向时做额外连接处理,进而节省连接处理带来的资源损耗。
图4为本申请实施例中页面重定向方法的第三流程示意图,应用于服务器,如图4所示,该页面重定向方法具体可以包括:
步骤401:与终端设备通过第一通信协议建立第一通信连接;
需要说明的是,第一通信连接指的是终端设备与服务器之间通过第一通信协议建立的通信连接。第一通信协议可以是TCP通信协议。
步骤402:若接收到中间设备发送的第三断开连接指令,断开与所述终端设备的所述第一通信连接;其中,所述第三断开连接指令是所述中间设备在确定对所述终端设备进行网站访问重定向情况下发送的。
需要说明的是,第三断开连接指令用于断开步骤401中终端设备与服务器的第一通信连接。
实际应用中,当终端设备进行网站访问重定向时,不再需要服务器向其响应数据,那么,服务器与终端设备之间的连接属于额外连接,进一步增加连接处理带来的资源损耗,因此,服务器会接收到中间设备发送的第三断开连接指令,以此来断开与终端设备之间的连接,节省资源损耗。
具体的,服务器基于第一通信连接接收终端设备发送的携带网站域名信息的数据包时,会经过中间设备,中间设备获取携带网站域名信息的数据包,并基于网站域名信息判断终端设备进行网站访问是否需要重定向。
当终端设备进行网站访问需要重定向时,此时服务器需接收中间设备发送的第三断开连接指令,为后续终端设备与中间设备建立通信连接奠定基础。
当终端设备进行网站访问不需要重定向时,基于第一通信连接,服务器直接获取到终端设备发起的网站访问请求,进而回应真实页面数据给终端设备,终端设备基于真实页面数据显示该页面。
采用上述技术方案,由于终端设备与服务器建立连接,节省因NAT代理而消耗大量系统资源;且终端设备向服务器进行网站访问请求,由中间设备确定对终端设备进行网站访问重定向时,才触发重定向操作,并向终端设备发送重定向数据,这样,避免不需重定向时做额外连接处理,进而节省连接处理带来的资源损耗。
为了能更加体现本申请的目的,对上述方案进行了具体举例说明。
图5为本申请实施例中终端设备、中间设备和服务器三者交互结构示意图。具体的,
首先,终端设备50与服务器52基于TCP通信协议建立通信连接。终端设备50向服务器52发送SYN数据包,进行第一次握手;服务器52向终端设备50返回SYN ACK数据包,进行第二次握手;终端设备50再向服务器52发送ACK数据包,进行第三次握手。终端设备50与服务器52完成TCP的三次握手后,建立通信连接完成。
需要说明的是,TCP通信无法保证数据的安全,可能随时被第三方获取而泄露通信双方之间的隐私,因此,通常使用SSL通信协议来建立安全保密的通信,SSL通信协议能够保证交互双方的数据按照密文方式传输,第三方在没有私钥的情况下几乎无法破解,从而达到保密的目的。
另外,由于SSL通信协议依赖于TCP连接实施,所以在SSL握手之前需要先建立TCP连接。
其次,终端设备50向服务器52发送携带SNI信息的client hello数据包(即携带网站域名信息的数据包)时,经过中间设备51,中间设备52对携带SNI信息的client hello数据包进行获取,并判断终端设备50进行网站访问是否需要重定向。当不需要重定向时,中间设备51没必要向终端设备50返回server hello数据包并进一步进行SSL握手,可根据终端设备50与服务器52之间的通信连接直接访问服务器52,请求页面数据。
当需要进行重定向时,说明后续中间设备51需充当服务器52功能向终端设备50返回页面数据,那么在此之前,需建立终端设备50与中间设备51的SSL握手连接。当中间设备51接收到client hello数据包后,会返回给终端设备50server hello数据包;与此同时,为加快服务器52的连接资源回收,向服务器52发送RST数据包(第三断开连接指令),将终端设备50与服务器52之间的通信连接断开。接着,终端设备50向中间设备51发送client keyexchange数据包,中间设备51向终端设备50返回server key exchange数据包后,完成SSL握手过程。
进一步地,建立好终端设备50与中间设备51之间的通信连接后,终端设备50向中间设备51发起GET/index.html(网站访问请求),中间设备51对GET/index.html进行处理,得出该请求进行网站访问是需要重定向的,生成302move重定向数据。若该请求进行网站访问是不需要重定向时,中间设备51向终端设备50发送RST数据包(第二断开连接指令),将终端设备50与服务器52之间的通信连接断开。
终端设备50与中间设备51之间的通信连接目的就是为获取重定向数据,所以终端设备50获取到重定向数据后,为避免终端设备50与中间设备51之间通信连接资源损耗,终端设备50向中间设备51发送FIN数据包(即第一断开连接指令),当终端设备50接收到FINACK数据包(即断开确认指令)时,终端设备50与中间设备51之间的通信连接断开。后续终端设备50直接基于302move重定向数据显示对应页面。
需要说明的是,上述终端设备50与中间设备51的具体数据交互过程,是基于中间设备51的驱动层实现,而具体的数据处理过程是中间设备51的应用层完成。即页面重定向方法的数据流处理分为内核驱动层和应用层两个部分来实现。详细介绍如下。
图6为本申请实施例中页面重定向方法的内核驱动层的数据处理流程示意图。驱动层主要是对需要进行重定向的连接数据包(进行SSL握手过程中产生的数据包均成为连接数据包)进行抓包,并通过netlink通信方式将其连接数据包发送至应用层,通过应用层处理后又发送至驱动层,最后通过驱动层又发送至终端设备50。具体的,
步骤601:是否要抓包;若不是,则执行步骤602;若是,则执行步骤605;
当中间设备的驱动层首次获取到终端设备50向服务器52发送的数据包时,此时驱动层不能够对该数据包进行抓包操作,由驱动层的业务模块判断该数据包中携带的网站域名信息进行网站访问时是否需要重定向。
步骤602:业务模块;
业务模块用于判断终端设备50进行网站访问时是否需要重定向。
步骤603:是否要重定向;若是,则执行步骤604;若不是,直接访问服务器52;
若不需要重定向时,终端设备50可直接访问服务器52。
步骤604:设置重定向标识;
在中间设备51的驱动层判断终端设备50进行网站访问重定向时,对终端设备50与服务器52之间的连接关系设置重定向标识。其中,重定向标识用于后续建立终端设备50与中间设备51的通信连接(第二通信连接)过程中,可直接接收终端设备50发送的数据包,快速完成握手操作;同时,基于重定向标识,中间设备51再次接收终端设备50发送的数据包时不需要再判断是否需要重定向。
此步骤还生成重定向数据。基于重定向标识,中间设备51的驱动层向终端设备50发送重定向数据。
步骤605:netlink抓包;
当终端设备50进行网站访问需要进行重定向时,调用驱动接口,通过驱动层直接获取数据包,并通过netlink通信方式将数据包发送至中间设备51的应用层进行处理,之后再次通过netlink通信方式将处理后的数据包发送至驱动层。
步骤606:netlink收包;
通过netlink通信方式接收应用层发送的数据包。
需要说明的是,上述对终端设备50与服务器52的连接关系已设置了重定向标识,后续终端设备50再次向服务器52发送数据包时,不再判断是否重定向,由中间设备51的驱动层直接获取数据包,即就是执行步骤601后,直接执行步骤605。
当SSL握手完成后,终端设备50首次向中间设备51发起HTTP请求,中间设备51判断终端设备50进行网站访问需要进行重定向时,应用层获取重定向数据并发送至驱动层,进而驱动层将重定向数据发送至终端设备50。
步骤607:将重定向数据发送至终端设备50。
这里,将驱动层的重定向数据再发送给终端设备50时,需要对终端设备50向服务器52发送数据包的地址信息进行修改,使得基于修改后的地址信息,终端设备50可以获取到重定向数据。
实际应用中,对地址信息的修改方式存在两种。一种是将终端设备50向服务器52发送数据包中的mac、ip、tcp头部中的源和目的进行反转,例如:原始地址为:192.168.1.1:2333(cc:d3:9d:9e:08:11)-20.233.22.2:443(cc:d3:9d:9e:08:51),经过反转之后为20.233.22.2:443(cc:d3:9d:9e:08:51)-192.168.1.1:2333(cc:d3:9d:9e:08:11),这样和真正的服务器回包一致。另一种是根据目的ip进行路由查找,之后根据查找的结果进行mac头部的填充,其ip和端口则与上一种同样的反转方式。
图7为本申请实施例中页面重定向方法的应用层的数据处理流程示意图。这里,应用层主要负责模拟SSL握手过程,同时进行HTTP请求解析,进而将重定向数据加密并发送至驱动层。具体的,
步骤701:开始;
步骤702:netlink收包;
这里,应用层接收到驱动层通过netlink通信方式发送的携带网站域名信息的数据包。
步骤703:是否为新连接;若是,则执行步骤704;若不是,则执行步骤706;
中间设备的应用层判断此时终端设备与中间设备之间的连接是否属于新连接,若是,则执行步骤704;若不是,则执行步骤706。
步骤704:创建连接跟踪;
创建连接跟踪是为保存重定向数据、终端设备与中间设备之间的连接产生的数据等。
步骤705:SSL初始化;
SSL初始化是为建立SSL握手。
步骤706:是否为302move数据;若是,则执行步骤707;若不是,则执行步骤708;
此时,中间设备的驱动层首先获取的是client hello数据包,也就是说,应用层先对client hello数据包进行处理,而该步骤判断出不是302move数据,则执行步骤708;接着再处理驱动层发送的302move重定向数据,及执行步骤707。
这里,client hello数据包属于SSL连接过程中的数据包,可称为SSL连接数据包。
步骤707:保存302move数据;
步骤708:通过Bio_write将SSL连接数据包写入;
通过openssl库提供的Bio_write接口将SSL连接数据包写入到Bio机制中,为后续的SSL握手操作提供数据来源。
步骤709:握手是否完成;若未完成,则执行步骤710;若完成,则执行步骤712;
步骤710:通过SSL_handshake进行握手操作;
此时终端设备与中间设备的连接状态还处于握手过程,调用openssl库提供的SSL_handshake接口进行握手。
步骤711:握手是否完成;若完成,则执行步骤712;若未完成,则执行步骤718;
步骤712:通过SSL_read获取解密后的SSL连接数据;
此时SSL握手成功。
步骤713:HTTP请求解析;
应用层基于netlink获取到驱动层发送的HTTP请求,并对HTTP请求进行解析,得到解析结果。
步骤714:HTTP解析是否成功;若是,则执行步骤715;若不是,则执行步骤716;
若步骤713中得到的解析结果中不包含html文件,说明当前网络通信出现故障,HTTP解析失败。若解析结果中包含html文件,说明当前网络通信正常,且HTTP解析成功。
步骤715:获取302move数据;
HTTP解析成功后,说明应用层需向终端设备返回重定向数据,也就是说,需要从连接跟踪中获取之前保存的302move重定向数据。
步骤716:连接关闭;
步骤717:通过SSL_write对数据进行加密;
通过openssl库提供的SSL_write对302move重定向数据进行加密。
步骤718:通过Bio_read获取加密数据;
执行步骤717之后,通过Bio_read获取加密的302move重定向数据。
执行711之后,确定握手未完成,此时应用层需对发送回终端设备的数据包进行加密,并通过Bio_read获取加密后的数据,以便发送至驱动层,进而基于驱动层将其发送至终端设备。
步骤719:通过netlink发送给驱动层;
执行步骤717之后,该步骤通过netlink通信方式将Bio_read中加密的302move重定向数据发送给驱动层。
执行步骤711之后,该步骤应用层获取应答终端设备的加密数据包,并通过netlink通信方式发送至驱动层。
步骤720:结束。
本申请通过openssl库的Bio机制,使得SSL握手过程、网站访问请求并返回重定向数据的过程均是基于中间设备的驱动层与终端设备交互,相对于现有技术中的走内核协议栈(socket协议),避免了额外的性能损耗。另外,旁路部署模式只具备接收数据包功能,不具备发送数据包功能,该部署模式在现有技术中,socket协议下是不能够修改目的地址,因此不能得到返回的重定向数据;然而,本申请中终端设备可通过旁路部署中的管理接口与其连接,修改目的地址即可进行交互。也就是说,本申请适应旁路部署模式,另外本申请还适应网桥部署、路由部署模式,本申请是优于现有技术的。
采用上述技术方案,由于终端设备与服务器建立连接,节省因NAT代理而消耗大量系统资源;且终端设备向服务器进行网站访问请求,由中间设备确定对终端设备进行网站访问重定向时,才触发重定向操作,并向终端设备发送重定向数据,这样,避免不需重定向时做额外连接处理,进而节省连接处理带来的资源损耗。
本申请实施例中还提供了一种终端设备,图8为本申请实施例中终端设备的第一结构示意图,如图8所示,该终端设备包括:
第一处理单元801,用于与服务器通过第一通信协议建立第一通信连接;
第一发送单元802,用于向所述服务器发送携带网站域名信息的数据包;
所述第一处理单元801,还用于当中间设备获取所述数据包,并基于所述网站域名信息确定对所述终端设备进行网站访问重定向时,通过第二通信协议与所述中间设备建立第二通信连接;
第一接收单元803,用于接收所述中间设备发送的所述网站域名信息对应的重定向数据,并基于所述重定向数据显示重定向页面。
在一些实施例中,所述接收所述中间设备发送的所述网站域名信息对应的重定向数据之前,向所述中间设备发起网站访问请求,以使得所述中间设备在所述网站访问请求满足预设的重定向条件时,将所述重定向数据发送给所述终端设备。
在一些实施例中,所述接收所述中间设备发送的所述网站域名信息对应的重定向数据之后,向所述中间设备发送第一断开连接指令;接收到所述中间设备返回的响应所述第一断开连接指令的断开确认指令时,断开与所述中间设备之间的所述第二通信连接。
在一些实施例中,所述向所述中间设备发起网站访问请求之后,所述中间设备在所述网站访问请求不满足所述重定向条件时,接收所述中间设备发送第二断开连接指令;响应所述第二断开连接指令,断开与所述中间设备之间的所述第二通信连接;显示网络故障页面。
在一些实施例中,所述重定向条件为:解析后的所述网络访问请求中包含html文件。
在一些实施例中,所述第一通信协议为传输控制协议;所述第二通信协议为安全套接字协议。
采用上述技术方案,由于终端设备与服务器建立连接,节省因NAT代理而消耗大量系统资源;且终端设备向服务器进行网站访问请求,由中间设备确定对终端设备进行网站访问重定向时,才触发重定向操作,并向终端设备发送重定向数据,这样,避免不需重定向时做额外连接处理,进而节省连接处理带来的资源损耗。
本申请实施例中还提供了一种中间设备,图9为本申请实施例中中间设备的第一结构示意图,如图9所示,该中间设备包括:
第二接收单元901,用于终端设备与服务器通过第一通信协议建立第一通信连接时,获取所述终端设备向所述服务器发送的携带网站域名信息的数据包;
第二处理单元902,用于基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,生成所述网站域名信息对应的重定向数据,并通过第二通信协议与所述终端设备建立第二通信连接;
第二发送单元903,用于向所述终端设备发送所述重定向数据,以使得所述终端设备基于所述重定向数据显示重定向页面。
在一些实施例中,所述装置包括:第二发送单元903,具体用于接收所述终端设备发送的网站访问请求;在所述网站访问请求满足预设的重定向条件时,向所述终端设备发送所述重定向数据。
在一些实施例中,所述向所述终端设备发送所述重定向数据之后,接收所述终端设备发送的第一断开连接指令;向所述终端设备返回响应所述第一断开连接指令的断开确认指令,并断开与所述终端设备之间的所述第二通信连接。
在一些实施例中,所述接收所述终端设备发送的网站访问请求之后,在所述网站访问请求不满足预设的重定向条件时,向所述终端设备发送第二断开连接指令,以断开与所述终端设备之间的所述第二通信连接,并使得所述终端设备显示网络故障页面。
在一些实施例中,所述装置包括:第二发送单元903,具体用于所述中间设备的驱动层接收所述网站访问请求;基于应用层和驱动层之间的通信方式,所述驱动层将所述网站访问请求发送给所述应用层;所述应用层确定所述网站访问请求满足预设的重定向条件时,获取所述重定向数据,并向所述驱动层发送所述重定向数据;所述驱动层向所述终端设备发送所述重定向数据。
在一些实施例中,所述重定向条件为:解析后的所述网络访问请求中包含html文件。
在一些实施例中,所述装置包括:第二接收单元901,具体同于所述中间设备的驱动层获取所述终端设备向所述服务器发送的所述数据包;在所述驱动层基于所述网站域名信息确定对所述终端设备进行网站访问重定向时,生成所述重定向数据;所述生成所述网站域名信息对应的重定向数据之后,基于应用层和驱动层之间的通信方式,所述驱动层将所述重定向数据发送至所述应用层,并存储至所述应用层。
在一些实施例中,所述通过第二通信协议与所述终端设备建立第二通信连接之前,在所述中间设备的驱动层,基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,对所述终端设备与所述服务器之间的连接设置重定向标识;基于所述重定向标识,在所述驱动层与所述终端设备执行所述第二通信连接的握手数据包的交互;基于所述重定向标识,所述驱动层向所述终端设备发送所述重定向数据。
在一些实施例中,所述确定对所述终端设备进行网站访问重定向之后,向所述服务器发送第三断开连接指令,使得所述服务器与所述终端设备断开所述第一通信连接。
在一些实施例中,所述第一通信协议为传输控制协议;所述第二通信协议为安全套接字协议。
采用上述技术方案,由于终端设备与服务器建立连接,节省因NAT代理而消耗大量系统资源;且终端设备向服务器进行网站访问请求,由中间设备确定对终端设备进行网站访问重定向时,才触发重定向操作,并向终端设备发送重定向数据,这样,避免不需重定向时做额外连接处理,进而节省连接处理带来的资源损耗。
本申请实施例中还提供了一种服务器,图10为本申请实施例中服务器的第一结构示意图,如图10所示,该服务器包括:
第三处理单元1001,用于与终端设备通过第一通信协议建立第一通信连接;
所述第三处理单元1001,还用于若接收到中间设备发送的第三断开连接指令,断开与所述终端设备的所述第一通信连接;其中,所述第三断开连接指令是所述中间设备在确定对所述终端设备进行网站访问重定向情况下发送的。
采用上述技术方案,由于终端设备与服务器建立连接,节省因NAT代理而消耗大量系统资源;且终端设备向服务器进行网站访问请求,由中间设备确定对终端设备进行网站访问重定向时,才触发重定向操作,并向终端设备发送重定向数据,这样,避免不需重定向时做额外连接处理,进而节省连接处理带来的资源损耗。
本申请实施例还提供了一种终端设备的第二结构示意图,如图11所示,该终端设备包括:第一处理器1101和配置为存储能够在处理器上运行的计算机程序的第一存储器1102;其中,第一处理器1101配置为运行计算机程序时,执行前述实施例中的方法步骤。
当然,实际应用时,如图11所示,该终端设备中的各个组件通过第一总线系统1103耦合在一起。
本申请实施例还提供了一种中间设备的第二结构示意图,如图12所示,该中间设备包括:第二处理器1201和配置为存储能够在处理器上运行的计算机程序的第二存储器1202;其中,第二处理器1201配置为运行计算机程序时,执行前述实施例中的方法步骤。
当然,实际应用时,如图12所示,该终端设备中的各个组件通过第二总线系统1203耦合在一起。
本申请实施例还提供了一种服务器的第二结构示意图,如图13所示,该终端设备包括:第三处理器1301和配置为存储能够在处理器上运行的计算机程序的第三存储器1302;其中,第三处理器1301配置为运行计算机程序时,执行前述实施例中的方法步骤。
当然,实际应用时,如图13所示,该终端设备中的各个组件通过第三总线系统1303耦合在一起。
在实际应用中,上述处理器可以为特定用途集成电路(ASIC,ApplicationSpecific Integrated Circuit)、数字信号处理装置(DSPD,Digital Signal ProcessingDevice)、可编程逻辑装置(PLD,Programmable Logic Device)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
上述存储器可以是易失性存储器(volatile memory),例如随机存取存储器(RAM,Random-Access Memory);或者非易失性存储器(non-volatile memory),例如只读存储器(ROM,Read-Only Memory),快闪存储器(flash memory),硬盘(HDD,Hard Disk Drive)或固态硬盘(SSD,Solid-State Drive);或者上述种类的存储器的组合,并向处理器提供指令和数据。
本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。
可选的,该计算机可读存储介质可应用于本申请实施例中的任意一种方法,并且该计算机程序使得计算机执行本申请实施例的各个方法中由处理器实现的相应流程,为了简洁,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (21)
1.一种页面重定向方法,应用于终端设备,其特征在于,所述方法包括:
与服务器通过第一通信协议建立第一通信连接;
向所述服务器发送携带网站域名信息的数据包;
当中间设备通过预设的获取方式获取所述数据包,并基于所述网站域名信息确定对所述终端设备进行网站访问重定向时,通过第二通信协议与所述中间设备建立第二通信连接;
接收所述中间设备发送的所述网站域名信息对应的重定向数据,并基于所述重定向数据显示重定向页面,其中,所述重定向数据中包括所述网站访问重定向的原因。
2.根据权利要求1所述的方法,其特征在于,在所述通过第二通信协议与中间设备建立第二通信连接之后,所述接收所述中间设备发送的所述网站域名信息对应的重定向数据之前,所述方法还包括:
向所述中间设备发起网站访问请求,以使得所述中间设备在所述网站访问请求满足预设的重定向条件时,将所述重定向数据发送给所述终端设备。
3.根据权利要求2所述的方法,其特征在于,所述接收所述中间设备发送的所述网站域名信息对应的重定向数据之后,所述方法还包括:
向所述中间设备发送第一断开连接指令;
接收到所述中间设备返回的响应所述第一断开连接指令的断开确认指令时,断开与所述中间设备之间的所述第二通信连接。
4.根据权利要求2所述的方法,其特征在于,所述向所述中间设备发起网站访问请求之后,所述方法还包括:
所述网站访问请求不满足所述重定向条件时,接收所述中间设备发送第二断开连接指令;
响应所述第二断开连接指令,断开与所述中间设备之间的所述第二通信连接;
显示网络故障页面。
5.根据权利要求2-4任一项所述的方法,其特征在于,
所述重定向条件为:解析后的所述网络访问请求中包含html文件。
6.根据权利要求1所述的方法,其特征在于,
所述第一通信协议为传输控制协议;
所述第二通信协议为安全套接字协议。
7.一种页面重定向方法,应用于中间设备,其特征在于,所述方法包括:
终端设备与服务器通过第一通信协议建立第一通信连接时,通过预设的获取方式,获取所述终端设备向所述服务器发送的携带网站域名信息的数据包;
基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,生成所述网站域名信息对应的重定向数据,并通过第二通信协议与所述终端设备建立第二通信连接,其中,所述重定向数据中包括所述网站访问重定向的原因;
向所述终端设备发送所述重定向数据,以使得所述终端设备基于所述重定向数据显示重定向页面。
8.根据权利要求7所述的方法,其特征在于,所述向所述终端设备发送所述重定向数据,包括:
接收所述终端设备发送的网站访问请求;
在所述网站访问请求满足预设的重定向条件时,向所述终端设备发送所述重定向数据。
9.根据权利要求8所述的方法,其特征在于,所述向所述终端设备发送所述重定向数据之后,所述方法还包括:
接收所述终端设备发送的第一断开连接指令;
向所述终端设备返回响应所述第一断开连接指令的断开确认指令,并断开与所述终端设备之间的所述第二通信连接。
10.根据权利要求8所述的方法,其特征在于,所述接收所述终端设备发送的网站访问请求之后,所述方法还包括:
在所述网站访问请求不满足所述重定向条件时,向所述终端设备发送第二断开连接指令,以断开与所述终端设备之间的所述第二通信连接,并使得所述终端设备显示网络故障页面。
11.根据权利要求8所述的方法,其特征在于,所述向所述终端设备发送所述重定向数据,包括:
所述中间设备的驱动层接收所述网站访问请求;
基于应用层和驱动层之间的通信方式,所述驱动层将所述网站访问请求发送给所述应用层;
所述应用层确定所述网站访问请求满足预设的重定向条件时,获取所述重定向数据,并向所述驱动层发送所述重定向数据;
所述驱动层向所述终端设备发送所述重定向数据。
12.根据权利要求8-11任一项所述的方法,其特征在于,
所述重定向条件为:解析后的所述网络访问请求中包含html文件。
13.根据权利要求7所述的方法,其特征在于,所述获取所述终端设备向所述服务器发送的携带网站域名信息的数据包,包括:所述中间设备的驱动层获取所述终端设备向所述服务器发送的所述数据包;
所述基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,生成所述网站域名信息对应的重定向数据,包括:在所述驱动层基于所述网站域名信息确定对所述终端设备进行网站访问重定向时,生成所述重定向数据;
所述生成所述网站域名信息对应的重定向数据之后,所述方法还包括:
基于应用层和驱动层之间的通信方式,所述驱动层将所述重定向数据发送至所述应用层,并存储至所述应用层。
14.根据权利要求13所述的方法,其特征在于,所述通过第二通信协议与所述终端设备建立第二通信连接之前,所述方法还包括:
在所述中间设备的驱动层,基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,对所述终端设备与所述服务器之间的连接设置重定向标识;
基于所述重定向标识,在所述驱动层与所述终端设备执行所述第二通信连接的握手数据包的交互;
所述向所述终端设备发送所述重定向数据,包括:
基于所述重定向标识,所述驱动层向所述终端设备发送所述重定向数据。
15.根据权利要求7所述的方法,其特征在于,所述确定对所述终端设备进行网站访问重定向之后,所述方法还包括:
向所述服务器发送第三断开连接指令,使得所述服务器断开与所述终端设备的所述第一通信连接。
16.根据权利要求7所述的方法,其特征在于,
所述第一通信协议为传输控制协议;
所述第二通信协议为安全套接字协议。
17.一种页面重定向方法,应用于服务器,其特征在于,所述方法包括:
与终端设备通过第一通信协议建立第一通信连接;
若接收到中间设备发送的第三断开连接指令,断开与所述终端设备的所述第一通信连接;
其中,所述第三断开连接指令是所述中间设备在基于网站域名信息确定对所述终端设备进行网站访问重定向时,通过第二通信协议与所述终端设备建立第二通信连接之后发送的;其中,所述网站域名信息是所述中间设备通过预设的获取方式,获取所述终端设备向所述服务器发送的携带网站域名信息的数据包得到的。
18.一种终端设备,其特征在于,所述终端设备包括:
第一处理单元,用于与服务器通过第一通信协议建立第一通信连接;
第一发送单元,用于向所述服务器发送携带网站域名信息的数据包;
所述第一处理单元,还用于当中间设备通过预设的获取方式获取所述数据包,并基于所述网站域名信息确定对所述终端设备进行网站访问重定向时,通过第二通信协议与所述中间设备建立第二通信连接;
第一接收单元,用于接收所述中间设备发送的所述网站域名信息对应的重定向数据,并基于所述重定向数据显示重定向页面,其中,所述重定向数据中包括所述网站访问重定向的原因。
19.一种中间设备,其特征在于,所述中间设备包括:
第二接收单元,用于终端设备与服务器通过第一通信协议建立第一通信连接时,通过预设的获取方式,获取所述终端设备向所述服务器发送的携带网站域名信息的数据包;
第二处理单元,用于基于所述数据包中的所述网站域名信息,确定对所述终端设备进行网站访问重定向时,生成所述网站域名信息对应的重定向数据,并通过第二通信协议与所述终端设备建立第二通信连接,其中,所述重定向数据中包括所述网站访问重定向的原因;
第二发送单元,用于向所述终端设备发送所述重定向数据,以使得所述终端设备基于所述重定向数据显示重定向页面。
20.一种服务器,其特征在于,所述服务器包括:
第三处理单元,用于与终端设备通过第一通信协议建立第一通信连接;
所述第三处理单元,还用于若接收到中间设备发送的第三断开连接指令,断开与所述终端设备的所述第一通信连接;
其中,所述第三断开连接指令是所述中间设备在基于网站域名信息,确定对所述终端设备进行网站访问重定向时,通过第二通信协议与所述终端设备建立第二通信连接之后发送的;其中,所述网站域名信息是所述中间设备通过预设的获取方式,获取所述终端设备向所述服务器发送的携带网站域名信息的数据包得到的。
21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至17任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010708440.8A CN111953742B (zh) | 2020-07-22 | 2020-07-22 | 一种页面重定向方法、终端设备、中间设备及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010708440.8A CN111953742B (zh) | 2020-07-22 | 2020-07-22 | 一种页面重定向方法、终端设备、中间设备及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111953742A CN111953742A (zh) | 2020-11-17 |
CN111953742B true CN111953742B (zh) | 2023-09-05 |
Family
ID=73340784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010708440.8A Active CN111953742B (zh) | 2020-07-22 | 2020-07-22 | 一种页面重定向方法、终端设备、中间设备及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111953742B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113542356A (zh) * | 2021-06-10 | 2021-10-22 | 上海甄汇信息科技有限公司 | 局域网内终端快速获取互联网资源的方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011020397A1 (zh) * | 2009-08-17 | 2011-02-24 | 成都市华为赛门铁克科技有限公司 | 网络代理实现方法及装置 |
CN103220371A (zh) * | 2012-01-18 | 2013-07-24 | 中国移动通信集团公司 | 内容适配方法及系统 |
WO2015014189A1 (zh) * | 2013-08-02 | 2015-02-05 | 优视科技有限公司 | 一种访问网站的方法及装置 |
CN105530127A (zh) * | 2015-12-10 | 2016-04-27 | 北京奇虎科技有限公司 | 一种代理服务器处理网络访问请求的方法和代理服务器 |
CN105897849A (zh) * | 2015-12-22 | 2016-08-24 | 乐视云计算有限公司 | 跨进程服务方法和系统及代理服务器 |
CN106936846A (zh) * | 2017-04-10 | 2017-07-07 | 北京明朝万达科技股份有限公司 | 一种基于wfp平台的网络访问控制方法及装置 |
CN107209751A (zh) * | 2015-08-13 | 2017-09-26 | 华为技术有限公司 | 业务处理方法及装置 |
US9888290B1 (en) * | 2016-03-24 | 2018-02-06 | Sprint Communications Company L.P. | Service denial notification in secure socket layer (SSL) processing |
CN111327634A (zh) * | 2020-03-09 | 2020-06-23 | 深信服科技股份有限公司 | 网站访问监管方法、安全套接层代理装置、终端及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10264079B2 (en) * | 2016-05-18 | 2019-04-16 | Cisco Technology, Inc. | Fastpath web sessions with HTTP header modification by redirecting clients |
-
2020
- 2020-07-22 CN CN202010708440.8A patent/CN111953742B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011020397A1 (zh) * | 2009-08-17 | 2011-02-24 | 成都市华为赛门铁克科技有限公司 | 网络代理实现方法及装置 |
CN103220371A (zh) * | 2012-01-18 | 2013-07-24 | 中国移动通信集团公司 | 内容适配方法及系统 |
WO2015014189A1 (zh) * | 2013-08-02 | 2015-02-05 | 优视科技有限公司 | 一种访问网站的方法及装置 |
CN107209751A (zh) * | 2015-08-13 | 2017-09-26 | 华为技术有限公司 | 业务处理方法及装置 |
CN105530127A (zh) * | 2015-12-10 | 2016-04-27 | 北京奇虎科技有限公司 | 一种代理服务器处理网络访问请求的方法和代理服务器 |
CN105897849A (zh) * | 2015-12-22 | 2016-08-24 | 乐视云计算有限公司 | 跨进程服务方法和系统及代理服务器 |
US9888290B1 (en) * | 2016-03-24 | 2018-02-06 | Sprint Communications Company L.P. | Service denial notification in secure socket layer (SSL) processing |
CN106936846A (zh) * | 2017-04-10 | 2017-07-07 | 北京明朝万达科技股份有限公司 | 一种基于wfp平台的网络访问控制方法及装置 |
CN111327634A (zh) * | 2020-03-09 | 2020-06-23 | 深信服科技股份有限公司 | 网站访问监管方法、安全套接层代理装置、终端及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111953742A (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109756501B (zh) | 一种基于http协议的高隐匿网络代理方法及系统 | |
US10326730B2 (en) | Verification of server name in a proxy device for connection requests made using domain names | |
US11303431B2 (en) | Method and system for performing SSL handshake | |
US20120185563A1 (en) | Network system, virtual private connection forming method, static nat forming device, reverse proxy server and virtual connection control device | |
US8925068B2 (en) | Method for preventing denial of service attacks using transmission control protocol state transition | |
CN108243143B (zh) | 一种基于web代理的网闸穿透方法及系统 | |
US20050086342A1 (en) | Techniques for client-transparent TCP migration | |
EP3678335A1 (en) | Method and device for detecting communication connection | |
CN105376216A (zh) | 一种远程访问方法、代理服务器及客户端 | |
CN111628976B (zh) | 一种报文处理方法、装置、设备及介质 | |
CN107172001B (zh) | 网站代理服务器的控制方法及装置、密钥代理服务器 | |
CN103168450B (zh) | 访问虚拟专用网络的方法、装置以及网关设备 | |
CN110830516B (zh) | 一种网络访问方法、装置、网络控制设备及存储介质 | |
CN110557358A (zh) | 蜜罐服务器通信方法、SSLStrip中间人攻击感知方法及相关装置 | |
CN106878133A (zh) | 报文转发方法及装置 | |
CN113992427B (zh) | 基于相邻节点的数据加密发送方法及装置 | |
CN111953742B (zh) | 一种页面重定向方法、终端设备、中间设备及服务器 | |
CN113422768B (zh) | 零信任中的应用接入方法、装置及计算设备 | |
CN104426864A (zh) | 跨域远程命令的实现方法及系统 | |
CN108781367B (zh) | 减少Cookie注入和Cookie重放攻击的方法 | |
CN110049024B (zh) | 一种数据传输方法、中转服务器及接入网点服务器 | |
CN111726328B (zh) | 用于对第一设备进行远程访问的方法、系统以及相关设备 | |
CN111078645A (zh) | 一种计算机数据的异地备份方法及装置 | |
CN115632963A (zh) | 一种确认隧道连接状态的方法、设备、装置及介质 | |
CN113472625B (zh) | 基于移动互联网的透明桥接方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |