网络数据的传输方法、系统、装置、设备及存储介质与流程

文档序号:17923595发布日期:2019-06-15 00:16阅读:162来源:国知局
网络数据的传输方法、系统、装置、设备及存储介质与流程

本申请涉及信息技术领域,尤其涉及一种网络数据的传输方法、传输系统、传输装置、计算设备以及存储介质。



背景技术:

目前,有一些终端设备(如手机、平板、pc机等)上安装的操作系统为应用提供了安全传输功能,操作系统只允许基于网络安全传输协议的经过加密的网络请求(比如https请求)的发送,而会将非加密的网络请求(如http请求)全部拦截并禁止其发送。对于应用(app)而言,有些网络请求安全性要求不高(如浏览新闻网页的请求等),是不需要做这种加密的安全性处理的,如果所有的网络请求都经过加密处理,会占用较多系统资源、影响整体性能。



技术实现要素:

本申请提出了以下技术方案,能够及时完成指定类型的网络请求的发送,以提高系统性能。

本申请实例提出了一种网络数据的传输方法,应用于应用客户端中的网络代理模块,所述方法包括:在操作系统提供的用于拦截网络请求的拦截模块中注册所述网络代理模块的信息,以使所述拦截模块将拦截到的来自应用层的网络请求发送给所述网络代理模块;接收来自所述拦截模块的所述网络请求;当确定所述网络请求为指定类型的网络请求时,根据所述网络请求携带的地址信息建立传输层连接;及通过所述传输层连接发送所述指定类型的网络请求。

本申请实例还提出了一种网络数据的传输系统,包括:拦截模块和网络代理模块;其中,所述拦截模块由操作系统提供,所述网络代理模块位于应用客户端中;所述拦截模块,根据所述网络代理模块在所述拦截模块中的注册信息将拦截到的来自应用层的网络请求发送给所述网络代理模块;所述网络代理模块,在所述拦截模块中注册所述网络代理模块的信息,接收来自所述拦截模块的所述网络请求,当确定所述网络请求为指定类型的网络请求时,根据所述网络请求携带的地址信息建立传输层连接,通过所述传输层连接发送所述指定类型的网络请求。

本申请实例还提出了一种网络数据的传输装置,其特征在于,应用于应用客户端中的网络代理模块,所述装置包括:注册模块,在操作系统提供的用于拦截网络请求的拦截模块中注册所述网络代理模块的信息,以使所述拦截模块将拦截到的来自应用层的网络请求发送给所述网络代理模块;请求接收模块,接收来自所述拦截模块的所述网络请求;建立模块,当确定所述网络请求为指定类型的网络请求时,根据所述网络请求携带的地址信息建立传输层连接;请求发送模块,通过所述传输层连接发送所述指定类型的网络请求。

在一些实例中,所述指定类型的网络请求包括超文本传输协议http请求。

在一些实例中,所述建立模块,调用所述操作系统提供的套接字模块,以使所述套接字模块根据所述网络请求携带的ip地址和端口号建立传输控制协议tcp连接。

在一些实例中,建立模块,通过解析所述网络请求中的请求行,确定所述网络请求是否为http请求。

在一些实例中,所述传输装置进一步包括:第一消息接收模块,接收来自所述拦截模块发送的携带所述网络请求的信息的问询消息;确认模块,根据所述问询消息携带的所述网络请求的信息确认是否处理所述网络请求;第一消息发送模块,向所述拦截模块发送响应消息,以使所述拦截模块当所述响应消息表示确认处理所述网络请求时发送所述网络请求至所述网络代理模块。

在一些实例中,所述确认模块,所述网络代理模块根据所述问询消息中携带的所述网络请求的信息,确认所述网络请求是否为自身响应于所述应用客户端的调用而发起的;如果所述网络请求为自身发起的,则确认处理所述网络请求。

在一些实例中,所述传输装置进一步包括:第二消息发送模块,当确定所述网络请求为指定类型的网络请求时,向所述应用客户端发送携带所述网络请求的信息的问询消息;第二消息接收模块,当接收到所述应用客户端响应于所述问询消息而发送的表示确认处理所述网络请求的响应消息时,则执行建立模块,所述根据所述网络请求携带的地址信息建立传输层连接。

在一些实例中,请求发送模块,通过所述传输层连接发送所述指定类型网络请求发送至目标服务器;所述传输装置进一步包括:第三消息接收模块,通过所述传输层连接,接收所述目标服务器响应于所述指定类型网络请求而发送的响应消息。

本申请实例还提出了一种计算设备,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序;所述处理器执行所述计算机程序时实现上述的传输方法。

本申请实例还提出了一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行上述的传输方法。

应用本发明申请实例提供的以上技术方案,在操作系统为app提供了安全传输功能来禁止app发送非加密的网络请求(如http请求)的情况下,app针对一些网络请求仍然可以进行正常的网络数据传输(如,发送http请求),提高网络数据传输速度,减少系统性能的消耗。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请一实例的传输方法适用的系统结构示意图;

图2为本申请一实例的传输方法的流程图;

图3为本申请一实例的操作系统的结构示意图;

图4为本申请一实例的拦截模块与网络代理模块的交互结构示意图;

图5为本申请一实例的传输方法的交互流程图;

图6为本申请一实例的传输系统的结构示意图;

图7为本申请一实例的传输装置的结构示意图;及

图8为本申请一实例的计算设备的硬件的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了描述上的简洁和直观,下文通过描述若干代表性的实施例来对本发明的方案进行阐述。实施例中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。

在一些技术场景中,一些终端设备(如手机、平板、pc机等)上安装的操作系统(如,iphoneos(ios)操作系统、苹果macosx操作系统等)为应用提供了安全传输功能(如,ats(apptransportsecurity)机制),操作系统只允许基于网络安全传输协议的经过加密网络请求(比如https请求)的发送,并且app若想禁用操作系统提供的安全传输功能,则需要向提供操作系统的服务方(如,appstore)提交特殊说明和描述来禁用安全传输功能,以说服服务方同意app禁用安全传输功能的行为。

为了解决及时完成指定类型的网络请求的发送的问题,本发明申请提出了一种网络数据的传输方法。

图1示出了本申请实例的网络数据的传输方法适用的系统结构示意图。该系统100至少包括终端设备、目标服务器103以及网络104。

其中,上述终端设备可以为移动终端设备101或pc终端设备102;上述移动设备安装有应用程序(如,app客户端或网页版app),该应用程序设置有网络代理模块,该网络代理模块包含实现网络数据的传输方法的应用程序;该网络代理模块将网络数据发送至与该网络代理模块对应的目标服务器103。

移动终端设备101是指具有数据计算处理功能的终端设备,包括但不限于(安装有通信模块的)智能手机、掌上电脑、平板电脑等,移动终端设备101上安装有操作系统,可以包括苹果iphoneos(ios)操作系统;pc终端设备102是指具有数据计算处理功能的终端设备,且安装有操作系统,可以包括苹果macosx操作系统。

网络104可以是有线网络,也可以是无线网络。其中,上述网络代理模块通过网络104与目标服务器103进行信息交换。

基于上述系统,本申请的实例提出了一种网络数据的传输方法,应用于应用客户端中(如,社交应用app、视频应用app等,该app安装在移动终端设备101中)的网络代理模块(如,新闻sdk、广告sdk等)。以下结合图2和图5,对该方法200加以说明,如图2所示,该方法200包括以下步骤:

步骤201:在操作系统提供的用于拦截网络请求的拦截模块中注册所述网络代理模块的信息,以使所述拦截模块将拦截到的来自应用层的网络请求发送给所述网络代理模块。

其中,上述操作系统可以包括:苹果iphoneos操作系统或苹果macosx操作系统,操作系统提供的拦截模块(如,url加载系统)至少包括拦截接口(如,nsurlprotocol接口)。

在一些实例中,图3示出了上述操作系统301以及应用app302的结构示意图300,该操作系统301中安装了多个应用app302(如,社交app、搜索引擎app、视频app等),其中,各个应用app302通过该操作系统301提供的沙箱进行隔离,且各个应用app302在各自的进程中发起网络请求,应用app302(如,社交app)可以设置有多个网络代理模块(如,不同类型的sdk,如新闻sdk、视频sdk、广告sdk、音乐sdk等)。上述网络代理模块中继承上述拦截接口的类(即自定义类,如类名为:myclass),网络代理模块将继承上述拦截接口的类作为调用参数通过上述拦截接口的静态接口(如,registerclass)传入到上述拦截接口中,当操作系统301加载应用app302的应用程序时,操作系统将应用app302中的网络代理模块的信息加载到拦截模块中,从而完成在拦截模块中执行步骤501:注册网络代理模块的信息。

在一些实例中,接收来自所述拦截模块发送的携带所述网络请求的信息的问询消息;根据所述问询消息携带的所述网络请求的信息确认是否处理所述网络请求;向所述拦截模块发送响应消息,以使所述拦截模块当所述响应消息表示确认处理所述网络请求时发送所述网络请求至所述网络代理模块。

所述网络代理模块根据所述问询消息中携带的所述网络请求的信息,确认所述网络请求是否为自身响应于所述应用客户端的调用而发起的;如果所述网络请求为自身发起的,则确认处理所述网络请求。

当应用app302发起网络请求(如,应用客户端基于用户的触发指令发起打开新闻网页进行浏览的网络请求)时,应用app302调起对应的网络代理模块(如,新闻sdk),该网络代理模块在操作系统301的应用层的进程中发起网络请求,上述拦截模块检测到该网络请求并对该网络请求进行加载时,由于在拦截接口中注册了网络代理模块的信息,则触发继承上述拦截接口的类的静态方法(如,caninitwithrequest),则网络代理模块接收来自所述拦截模块发送的携带所述网络请求的信息(如,user-agent信息)的问询消息(即回调通知,表示是否确认处理该网络请求),网络代理模块根据该user-agent信息确认该网络请求是否为自身响应于所述应用客户端的调用而发起的,如果该网络请求是该网络代理模块发起的,则向所述拦截模块发送响应消息,以使所述拦截模块当所述响应消息表示确认处理所述网络请求时发送所述网络请求至所述网络代理模块,则拦截模块执行步骤502:拦截该网络请求。

图4示出了拦截模块401与网络代理模块的交互结构示意图400,其中,拦截接口设置在拦截模块401中,且该拦截模块401设置在操作系统301中;需要说明的是,在应用app302中可以设置有多个网络代理模块,且该多个网络代理模块可以都向拦截模块401注册自己的网络代理模块的信息(即继承上述拦截接口的类),当拦截模块401检测到该应用app302发起的网络请求时,会根据注册时间倒序的遍历方式对各个继承上述拦截接口的类发送问询消息,当最后一个注册的网络代理模块向拦截模块401发送响应消息表示不确认处理所述网络请求时,拦截模块401会继续问询倒数第二注册的网络代理模块,以此类推,直到找到处理该网络请求的网络代理模块,如果没有网络代理模块处理该网络请求,则拦截模块401会根据自己默认的处理方式处理该网络请求。

步骤202:接收来自所述拦截模块的所述网络请求。

在一些实例中,当拦截模块401接收到上述响应消息表示确认处理所述网络请求时,则向该网络代理模块执行步骤503:发送网络请求。则上述网络代理模块接收到来自拦截模块401的网络请求。

步骤203:当确定所述网络请求为指定类型的网络请求时,根据所述网络请求携带的地址信息建立传输层连接。

其中,所述指定类型的网络请求包括超文本传输协议http请求;通过解析所述网络请求中的请求行(即网络请求报文中的请求行中的request-url信息,如,http://www.xxx.com),执行步骤504:确定所述网络请求是否为http请求。

在一些实例中,当确定所述网络请求为指定类型的网络请求(如,http请求)时,向所述应用客户端执行步骤505:发送携带所述网络请求的信息(如url)的问询消息;当执行步骤506:接收到所述应用客户端响应于所述问询消息而发送的表示确认处理所述网络请求的响应消息时(如,当应用app302检测到本app没有向苹果公司提交禁用ats机制的特殊说明或没有检测到苹果公司同意本app禁用ats的信息时,就会向网络代理模块发送表示确认处理所述网络请求的响应消息时),则网络代理模块执行步骤507:所述根据所述网络请求携带的地址信息建立传输层连接。

上述所述根据所述网络请求携带的地址信息建立传输层连接,包括:调用所述操作系统301提供的套接字接口(如,tcpsocket接口),以使所述套接字接口根据所述网络请求携带的ip地址和端口号(如,端口号80)建立传输控制协议tcp连接。

步骤204:通过所述传输层连接发送所述指定类型的网络请求。

在一些实例中,网络代理模块通过所述传输层连接执行步骤508:发送所述指定类型网络请求发送至目标服务器103;所述方法进一步包括:网络代理模块通过所述传输层连接,执行步骤509:接收所述目标服务器103(如,与网络代理模块为新闻sdk,则其对应的新闻服务器)响应于所述指定类型网络请求(如,应用客户端基于用户的触发指令通过新闻sdk发起的打开新闻网页进行浏览的http请求)而发送的响应消息(如,新闻网页的展示信息)。当网络代理模块接收到该响应信息,则将该响应消息通过应用客户端的展示界面展示给用户(如,向用户展示新闻网页内容)。

需要说明的是,本发明的技术方案还可以应用到网页版应用程序(网页版应用程序安装在pc终端设备102中)中的网络代理模块中,该实现方式与前文阐述的应用在应用app302中的网络代理模块的实现方式相同。同时,应用本发明的技术方案能够进一步给用户带来良好体验、提高用户设备的系统性能,同时增加应用app302或网页版应用程序的市场竞争能力和市场口碑,具有较高的市场价值。

对应于上述网络数据的传输方法200,本申请还提出了一种媒体数据的处理系统,如图6所示,该处理系统600包括:拦截模块601和网络代理模块602;且各个服务器的功能具体如下:

其中,所述拦截模块601由操作系统301提供,所述网络代理模块602位于应用客户端中;上述操作系统可以包括:苹果iphoneos操作系统或苹果macosx操作系统,操作系统301提供的拦截模块601(如,url加载系统)至少包括拦截接口(如,nsurlprotocol)。

所述拦截模块601,响应于来自所述网络代理模块602的注册请求而注册所述网络代理模块602的信息,根据所述网络代理模块602的信息将拦截到的来自应用层的网络请求发送给所述网络代理模块602。

所述网络代理模块602,在所述拦截模块601中注册所述网络代理模块602的信息,接收来自所述拦截模块601的所述网络请求,当确定所述网络请求为指定类型的网络请求时,根据所述网络请求携带的地址信息建立传输层连接,通过所述传输层连接发送所述指定类型的网络请求。

在一些实例中,所述网络代理模块602,调用所述操作系统301提供的套接字接口,以使所述套接字接口根据所述网络请求携带的ip地址和端口号建立传输控制协议tcp连接。

在一些实例中,所述拦截模块601,当拦截到所述网络请求时,根据所述网络代理模块602的信息,发送携带所述网络请求的信息的问询消息至所述网络代理模块602;所述网络代理模块602,当接收到来自所述拦截模块601的问询消息时,根据其中携带的所述网络请求的信息确认是否处理所述网络请求并反馈相应的响应消息;所述拦截模块601,当接收到来自所述网络代理模块602的表示确认处理所述网络请求的所述响应消息时,发送所述网络请求至所述网络代理模块602。

在一些实例中,所述网络代理模块602,当确定所述网络请求为指定类型的网络请求时,进一步向所述应用客户端发送携带所述网络请求的信息的问询消息;当接收到所述应用客户端响应于所述问询消息而发送的表示确认处理所述网络请求的响应消息时,执行所述根据所述网络请求携带的地址信息建立传输层连接的步骤。

在一些实例中,所述网络代理模块602,通过所述传输层连接发送所述指定类型的网络请求至目标服务器103;所述网络代理模块602,进一步通过所述传输层连接,接收所述目标服务器103响应于所述指定类型的网络请求而发送的响应消息。

对应于一种网络数据的传输方法200,本申请还提出了一种网络数据的传输方法装置,应用到应用客户端中的网络代理模块602,如图7所示,该处理装置700包括:注册模块701、请求接收模块702、建立模块703以及请求发送模块704;且各个模块的功能具体如下:

注册模块701,在操作系统301提供的用于拦截网络请求的拦截模块601中注册所述网络代理模块602的信息,以使所述拦截模块601将拦截到的来自应用层的网络请求发送给所述网络代理模块602。

请求接收模块702,接收来自所述拦截模块601的所述网络请求。

建立模块703,当确定所述网络请求为指定类型的网络请求时,根据所述网络请求携带的地址信息建立传输层连接。

请求发送模块704,通过所述传输层连接发送所述指定类型的网络请求。

在一些实例中,所述指定类型的网络请求包括超文本传输协议http请求。

在一些实例中,所述建立模块703,调用所述操作系统301提供的套接字模块,以使所述套接字模块根据所述网络请求携带的ip地址和端口号建立传输控制协议tcp连接。

在一些实例中,建立模块703,通过解析所述网络请求中的请求行,确定所述网络请求是否为http请求。

在一些实例中,所述传输装置700进一步包括:第一消息接收模块,接收来自所述拦截模块601发送的携带所述网络请求的信息的问询消息;确认模块,根据所述问询消息携带的所述网络请求的信息确认是否处理所述网络请求;第一消息发送模块,向所述拦截模块601发送响应消息,以使所述拦截模块601当所述响应消息表示确认处理所述网络请求时发送所述网络请求至所述网络代理模块602。

在一些实例中,所述确认模块,所述网络代理模块602根据所述问询消息中携带的所述网络请求的信息,确认所述网络请求是否为自身响应于所述应用客户端的调用而发起的;如果所述网络请求为自身发起的,则确认处理所述网络请求。

在一些实例中,所述传输装置700进一步包括:第二消息发送模块,当确定所述网络请求为指定类型的网络请求时,向所述应用客户端发送携带所述网络请求的信息的问询消息;第二消息接收模块,当接收到所述应用客户端响应于所述问询消息而发送的表示确认处理所述网络请求的响应消息时,则执行建立模块,所述根据所述网络请求携带的地址信息建立传输层连接。

在一些实例中,请求发送模块704,通过所述传输层连接发送所述指定类型网络请求发送至目标服务器103;所述传输装置700进一步包括:第三消息接收模块,通过所述传输层连接,接收所述目标服务器103响应于所述指定类型网络请求而发送的响应消息。

图8示出了传输装置700所在的计算设备800的组成结构图。此计算设备800可以是终端设备。如图8所示,该计算设备800包括一个或者多个处理器(cpu)802、通信模块804、存储器806、用户接口810,以及用于互联这些组件的通信总线808。

处理器802可通过通信模块804接收和发送数据以实现网络通信和/或本地通信。

用户接口810包括一个或多个输出设备812,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口810也包括一个或多个输入设备814,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。

存储器806可以是高速随机存取存储器,诸如dram、sram、ddrram、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。

存储器806存储处理器802可执行的指令集,包括:

操作系统816,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;

应用818,包括各种应用程序,应用程序能够实现上述各实例中的处理流程,比如可以包括图7所示的传输装置700中的部分或全部模块,各模块701-704中的至少一个模块可以存储有机器可执行指令,处理器802通过执行存储器806中各模块701-704中至少一个模块中的机器可执行指令,进而能够实现上述各模块701-704中的至少一个模块的功能。

上述操作系统816中还可包括上述处理系统600中的拦截模块601,可以实现上述各实例中的处理流程,与应用818中的传输装置700实现前述的各种交互,进而能够实现指定类型网络请求的及时发送,提升用户设备的系统性能,改善用户使用app的体验。

需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。

各实施例中的硬件模块可以以硬件方式或硬件平台加软件的方式实现。上述软件包括机器可读指令,存储在非易失性存储介质中。因此,各实施例也可以体现为软件产品。

各例中,硬件可以由专门的硬件或执行机器可读指令的硬件实现。例如,硬件可以为专门设计的永久性电路或逻辑器件(如专用处理器,如fpga或asic)用于完成特定的操作。硬件也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。

另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请,本申请还提供了一种非易失性存储介质,其中存储有数据处理程序,这种数据处理程序可用于执行本申请上述方法实例中的任何一种实例。

图6和/或7中的模块对应的机器可读指令可以使计算机上操作的操作系统等来完成这里描述的部分或者全部操作。非易失性计算机可读存储介质可以是插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器。安装在扩展板或者扩展单元上的cpu等可以根据指令执行部分和全部实际操作。

另外,在本申请各个实例中的装置及各模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上装置或模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1