具体实施方式
本发明实施例所提供的网络协议切换方法、装置及终端可应用于如图1所示的应用环境中。如图1所示,移动终端100、服务器200位于无线网络或有线网络300中,通过该无线网络或有线网络300,移动终端100与服务器200进行数据交互。于本发明实施例中,移动终端100中安装有至少一个应用程序(APP),与服务器200相对应,为用户提供服务。
于本发明实施例中,移动终端100可以包括智能手机、平板电脑、电子书阅读器、膝上型便携计算机、车载电脑、穿戴式移动终端等等。
图2示出了一种可应用于本发明实施例中的移动终端100的结构框图。如图2所示,移动终端100包括存储器102、存储控制器104,一个或多个(图中仅示出一个)处理器106、外设接口108、射频模块110、音频模块112、触控屏幕114等。这些组件通过一条或多条通讯总线/信号线116相互通讯。
存储器102可用于存储软件程序以及模块,如本发明实施例中的网络协议切换方法及装置对应的程序指令/模块,处理器106通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理,如本发明实施例提供的网络协议切换方法。
存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。处理器106以及其他可能的组件对存储器102的访问可在存储控制器104的控制下进行。
外设接口108将各种输入/输出装置耦合至处理器106以及存储器102。在一些实施例中,外设接口108,处理器106以及存储控制器104可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
射频模块110用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。
音频模块112向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
触控屏幕114在移动终端100与用户之间同时提供一个输出及输入界面。在本实施例中,所述触控屏幕114支持单点和多点触控操作,例如,该触控屏幕114可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是触控屏幕114能感应到来自该触控屏11上一个或多个位置处同时产生的触控操作,并将该感应到的多点触控操作交由处理器106进行处理。
可以理解,图2所示的结构仅为示意,移动终端100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
本发明实施例提出的网络协议切换方法、装置及终端,提供了一种新的网络协议切换方法。该网络协议切换方法及装置可适用于Android操作系统、iOS操作系统、WindowsPhone操作系统等平台。具体地,本发明实施例提出的网络协议切换方法及装置可应用于移动终端100的应用程序,较佳的,该应用程序为浏览器。当用户在浏览器中进行网页浏览时,本发明实施例提出的网络协议切换方法及装置依据移动终端100的当前网络选择性地切换网页加载时的网络协议。
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
第一实施例
图3示出了本发明实施例提供的网络协议切换装置400的框图。本发明实施例提供的网络协议切换装置400包括:获取模块410、验证模块420、执行模块430、预连接模块440以及生成模块450。
获取模块410用于获取声明使用HTTPS的请求以及服务器200下发的预置规则。
在本发明实施例中,用户可以通过触控屏幕114在移动终端100的浏览器中输入声明HTTPS协议的统一资源定位符(Uniform Resource Locator,URL),例如:https://m.baidu.com,依据用户输入的该URL,移动终端100获取声明使用HTTPS协议的请求,并向服务器200发送该声明HTTPS协议的请求,以向服务器200声明使用HTTPS协议进行数据传输,较佳的,该请求为GET请求。
在本发明实施例中,预置规则可以是根据具体的网络情况或URL的类型预先通过人工配置的关于网络资源加载过程中的协议切换的相关规则,以预先匹配使用HTTPS协议或HTTP协议。该预置规则可以被预先存储于服务器200中,并且在移动终端100的应用程序(例如浏览器)开启时,服务器200则向移动终端100发送所述预置规则。
例如,当某一特定的URL对应的网络资源需要以较快的速度加载时,则该URL需要使用HTTP协议进行数据传输,那么,预置规则可以为:该特定的URL需要切换网络协议,当用户在移动终端100的浏览器中输入该特定的URL时,移动终端100则需要将HTTPS协议切换至HTTP协议,按照HTTP协议进行数据传输,以快速加载网络资源。再例如,预置规则可以为:“0,1|m.baidu.com”,表示在2G、3G网络下,m.baidu.com的域名均从HTTPS协议切换至HTTP协议;进一步地,可以使用正则表达式匹配,下发规则“0,1|*baidu.com”,表示在2G、3G网络下,以baidu.com结尾的域名均从HTTPS协议切换至HTTP协议。在上述规则中,由于SSL连接比TCP连接建立更困难,在当前网络为2G、3G网络时,网络速度较慢,因此需要将HTTPS协议(基于SSL连接)切换至HTTP协议(基于TCP连接)以更快地建立连接。
验证模块420用于当所述预置规则与当前网络不匹配时,验证当前网络的网络品质。
在本发明实施例中,当所述预置规则与当前网络不匹配时,则说明当前网络没有关于协议切换的预置规则,那么,需要进一步验证当前网络的网络品质,以依据当前网络的网络品质来衡量是否需要切换网络协议。
进一步的,请参阅图4,验证模块420可以包括获取单元421、计算单元422以及确定单元423。
获取单元421,用于获取当前网络的N次网络连接的连接建立时间,其中,N为自然数;
计算单元422,用于对所述连接建立时间的最大值做均一化处理,得到当前网络的网络波动性衡量指标MA;
确定单元423,用于将当前网络的网络波动性衡量指标MA与网络波动性参考标准进行对比确定网络波动状态以及超时时间阈值。
当前网络的网络品质可以由上述的网络波动性衡量指标MA、网络波动状态和超时时间阈值来衡量。
下表表1示出了预先存储于数据库中的网络波动性参考标准。该网络波动性参考标准是根据网络建立时间、网络响应时间等大量的数据进行计算得出的,需要说明的是,表1示出的网络波动性参考标准还可以包括更多或更少的网络波动状态,同时将网络波动性衡量指标MA的取值范围再划分出更多或更少的阶段,并有效对应超时时间阈值。
表1
该网络波动状态根据网络波动性进行设定,在本实施例中,将其设定为五个阶段,即该网络波动状态从稳定到波动分为五个状态:网络非常稳定、网络稳定、网络波动小、网络波动大和网络非常波动,且在实施例中,可将网络波动性衡量指标MA分别划分五个阶段对应于网络波动状态。表1有效指出网络波动性衡量指标MA与网络波动状态、超时时间阈值之间的关系,由于每个网络波动性衡量指标MA的取值范围均对应一个网络波动状态和超时时间阈值,因此,可以通过一个实时的网络波动性衡量指标MA的值来确定当前网络的网络波动状态和超时时间阈值。
在本发明实施例中,将计算单元422计算出的网络波动性衡量指标MA与表1进行比对,从而可以确定网络波动状态及超时时间阈值。
在本发明实施例中,可以对当前网络的网络品质设定一预设标准,例如:对于网络波动性衡量指标MA预设第一阈值;或者对于超时时间阈值预设第二阈值。再由验证模块420验证当前网络的网络波动性衡量指标是否大于预设的第一阈值,或者由验证模块420验证当前网络的超时时间阈值是否大于预设的第二阈值。以由当前网络的网络波动性衡量指标MA与第一阈值的关系、超时时间阈值与第二阈值的关系来验证当前网络的网络品质。
进一步地,验证模块420还用于:验证当前网络是否为安全网络,若当前网络为安全网络,则判断所述服务器下发的预置规则与当前网络是否匹配。
在本发明实施例中,当前网络可以为WIFI、2G、3G等网络。当当前网络为WIFI网络时,移动终端100可以在接入时根据WIFI网络提供的信息识别该WIFI网络是否是安全的网络,例如,若该WIFI网络是无需任何安全认证措施即可连接的WIFI网络,则移动终端100判定该WIFI网络是不安全的网络,则需要以安全性更高的HTTPS协议进行网络资源加载,因而不需要切换网络协议。若该WIFI网络是需要安全认证措施才可连接的WIFI网络,则移动终端100判定该WIFI网络是安全的网络;若当前网络为2G/3G等移动网络时,移动终端100也判定该移动网络是安全的网络。当当前网络为安全网络时,验证模块420则判断所述服务器下发的预置规则与当前网络是否匹配。
执行模块430用于当所述预置规则与当前网络匹配时,依据所述预置规则将HTTPS协议切换为HTTP协议;执行模块430还用于在所述网络品质不满足预设标准时,将HTTPS协议切换为HTTP协议。
在本发明实施例中,验证模块420验证服务器200下发的预置规则中是否有与当前网络匹配的预置规则,若有,则由执行模块430按照该匹配的预置规则切换网络协议。例如,当前网络为2G/3G网络,当服务器200下发的预置规则中存在预置规则“0,1|m.baidu.com”时,执行模块430则按照该预置规则将m.baidu.com的域名从HTTPS协议切换至HTTP协议。
在本发明实施例中,若当前网络的网络品质不满足预设标准,例如:当网络波动性衡量指标MA大于预设的第一阈值(例如[10,30))时,执行模块430将HTTPS协议切换为HTTP协议;或者,依据网络波动性衡量指标MA与表1进行比对,确定超时时间阈值,当该超时时间阈值大于预设的第二阈值(例如10秒)时,执行模块430将HTTPS协议切换为HTTP协议。在当前网络的网络品质不满足预设标准时,则表示当前网络品质较差,需要以更容易建立连接的方式进行数据传输,由于HTTP协议的TCP连接比HTTPS协议的SSL连接建立更容易,因此,在当前网络的网络品质不满足预设标准时,可以将HTTPS协议切换为HTTP协议。
进一步的,执行模块430还用于:将URL的HTTPS协议字段替换为HTTP协议字段,例如:原完整URL为https://m.baidu.com,替换协议字段部分,替换后的完整URL为:http://m.baidu.com。
进一步地,执行模块430还用于:在获取模块410获取声明使用HTTPS协议的请求之后,若连接池中有可用的第一SSL连接,则使用该第一SSL连接进行数据传输。所述连接池是创建和管理连接的缓冲池,这些连接准备好被任何需要它们的线程使用。
预连接模块440用于:在将HTTPS协议切换为HTTP协议之后(即将URL的HTTPS协议字段替换为HTTP协议字段之后),建立与所述URL对应的第二SSL连接,并将所述第二SSL连接存储于所述连接池以备用。例如,协议切换之前为HTTPS协议,其对应的URL为https://m.baidu.com,则建立域名为m.baidu.com的第二SSL连接,并将第二该SSL连接存储于连接池中。当下一次对该域名声明HTTPS协议时,则可以直接利用该第二SSL连接进行数据传输以加载网络资源,而不需要重新建立SSL连接,节约了时间,提高了网络资源加载效率。需要说明的是,无论HTTPS协议是否切换成功,均建立上述的第二SSL连接进行备用。
生成模块450用于:当所述HTTPS协议切换失败时,生成对应的记录,并存储于所述预置规则中。在下一次加载该网络资源时,即可依据预置规则中的该记录来确定是否切换网络协议。若HTTPS协议切换失败,即:在协议切换后出现页面或加载过程的异常,例如,原完整URL为https://m.baidu.com,请求切换协议后的http://m.baidu.com返回302响应码,其中跳转的目标地址为https://m.baidu.com/XXX,则认为切换失败。在切换失败之后,生成相关记录并添加到预置规则中,以说明该URL不适合协议切换,在下一次加载该URL(https://m.baidu.com)对应的网络资源时,则可以依据该相关记录不切换网络协议。
第二实施例
图5示出了本发明实施例提供的网络协议切换方法的步骤图。本发明实施例提供的网络协议切换方法包括以下步骤:
步骤S1,获取声明使用HTTPS协议的请求以及服务器200下发的预置规则。
在本发明实施例中,步骤S1可以由获取模块410执行。用户可以通过触控屏幕114在移动终端100的浏览器中输入声明HTTPS协议的统一资源定位符(Uniform ResourceLocator,URL),例如:https://m.baidu.com,依据用户输入的该URL,获取模块410获取声明使用HTTPS协议的网络请求,并向服务器200发送该声明HTTPS协议的网络请求,以向服务器200声明使用HTTPS协议进行数据传输,较佳的,该请求为GET请求。
在本发明实施例中,预置规则可以是根据具体的网络情况或URL的类型预先通过人工配置的关于网络资源加载过程中的协议切换的相关规则,以预先匹配使用HTTPS协议或HTTP协议。该预置规则可以被预先存储于服务器200中,并且在移动终端100的应用程序(例如浏览器)开启时,服务器200则向移动终端100发送所述预置规则。
例如,当某一特定的URL对应的网络资源需要以较快的速度加载时,则该URL需要使用HTTP协议进行数据传输,那么,预置规则可以为:该特定的URL需要切换网络协议,当用户在移动终端100的浏览器中输入该特定的URL时,移动终端100则需要将HTTPS协议切换至HTTP协议,按照HTTP协议进行数据传输,以快速加载网络资源。再例如,预置规则可以为:“0,1|m.baidu.com”,表示在2G、3G网络下,m.baidu.com的域名均从HTTPS协议切换至HTTP协议;进一步地,可以使用正则表达式匹配,下发规则“0,1|*baidu.com”,表示在2G、3G网络下,以baidu.com结尾的域名均从HTTPS协议切换至HTTP协议。在上述规则中,由于SSL连接比TCP连接建立更困难,在当前网络为2G、3G网络时,网络速度较慢,因此需要将HTTPS协议(基于SSL连接)切换至HTTP协议(基于TCP连接)以更快地建立连接。
进一步地,在获取声明使用HTTPS协议的请求之后,若连接池中有可用的第一SSL连接,则可以由执行模块430直接使用该第一SSL连接进行数据传输。
步骤S2,当所述预置规则与当前网络不匹配时,验证当前网络的网络品质。
在本发明实施例中,步骤S2可以由验证模块420执行。当所述预置规则与当前网络不匹配时,则说明当前网络没有关于协议切换的预置规则,那么,需要进一步验证当前网络的网络品质,以依据当前网络的网络品质来衡量是否需要切换网络协议。
当前网络的网络品质可以由网络波动性衡量指标MA、网络波动状态和超时时间阈值来衡量。
首先,采用以下步骤确定当前网络的网络波动性衡量指标MA、网络波动状态以及超时时间阈值:
步骤S21,获取当前网络的N次网络连接的连接建立时间,其中,N为自然数;步骤S21可以由获取单元421执行。
步骤S22,对所述连接建立时间的最大值做均一化处理,得到当前网络的网络波动性衡量指标MA;步骤S22可以由计算单元422执行。
步骤S23,将当前网络的网络波动性衡量指标MA与网络波动性参考标准进行对比确定网络波动状态以及超时时间阈值。步骤S23可以由确定单元423执行。
在本发明实施例中,将步骤S22计算出的网络波动性衡量指标MA与实施例一中的表1进行比对,从而可以确定网络波动状态及超时时间阈值。
在本发明实施例中,可以对当前网络的网络品质设定一预设标准,例如:对于网络波动性衡量指标MA预设第一阈值;或者对于超时时间阈值预设第二阈值。再由验证模块420验证当前网络的网络波动性衡量指标是否大于预设的第一阈值,或者由验证模块420验证当前网络的超时时间阈值是否大于预设的第二阈值。以由当前网络的网络波动性衡量指标MA与第一阈值的关系、超时时间阈值与第二阈值的关系来验证当前网络的网络品质。
进一步地,在步骤S2之前验证模块420还可以执行以下步骤:验证当前网络是否为安全网络,若当前网络为安全网络,则判断所述服务器下发的预置规则与当前网络是否匹配。
在本发明实施例中,当前网络可以为WIFI、2G、3G等网络。当当前网络为WIFI网络时,验证模块420可以在接入时根据WIFI网络提供的信息识别该WIFI网络是否是安全的网络,例如,若该WIFI网络是无需任何安全认证措施即可连接的WIFI网络,则验证模块420判定该WIFI网络是不安全的网络,则需要以安全性更高的HTTPS协议进行网络资源加载,因而不需要切换网络协议。若该WIFI网络是需要安全认证措施才可连接的WIFI网络,则验证模块420判定该WIFI网络是安全的网络;若当前网络为2G/3G等移动网络时,验证模块420也判定该移动网络是安全的网络。当当前网络为安全网络时,验证模块420则判断所述服务器下发的预置规则与当前网络是否匹配。
步骤S3,当所述预置规则与当前网络匹配时,依据所述预置规则将HTTPS协议切换为HTTP协议;或者当所述网络品质不满足预设标准时,将HTTPS协议切换为HTTP协议。
在本发明实施例中,步骤S3可以由执行模块430执行。
在本发明实施例中,验证模块420验证服务器200下发的预置规则中是否有与当前网络匹配的预置规则,若有,则由执行模块430按照该匹配的预置规则切换网络协议。例如,当前网络为2G/3G网络,当服务器200下发的预置规则中存在预置规则“0,1|m.baidu.com”时,执行模块430则按照该预置规则将m.baidu.com的域名从HTTPS协议切换至HTTP协议。
在本发明实施例中,若当前网络的网络品质不满足预设标准,例如:当网络波动性衡量指标MA大于预设的第一阈值(例如[10,30))时,执行模块430将HTTPS协议切换为HTTP协议;或者,依据网络波动性衡量指标MA与表1进行比对,确定超时时间阈值,当该超时时间阈值大于预设的第二阈值(例如10秒)时,执行模块430将HTTPS协议切换为HTTP协议。在当前网络的网络品质不满足预设标准时,则表示当前网络品质较差,需要以更容易建立连接的方式进行数据传输,由于HTTP协议的TCP连接比HTTPS协议的SSL连接建立更容易,因此,在当前网络的网络品质不满足预设标准时,可以将HTTPS协议切换为HTTP协议。
进一步地,步骤S3中的将HTTPS协议切换为HTTP协议包括:将URL的HTTPS协议字段替换为HTTP协议字段,例如:原完整URL为https://m.baidu.com,替换协议字段部分,替换后的完整URL为:http://m.baidu.com。
进一步地,在步骤S3之后还包括以下步骤S31:在将HTTPS协议切换为HTTP协议之后(即将URL的HTTPS协议字段替换为HTTP协议字段之后),建立与所述URL对应的第二SSL连接,并将所述第二SSL连接存储于所述连接池以备用。例如,协议切换之前为HTTPS协议,其对应的URL为https://m.baidu.com,则建立域名为m.baidu.com的第二SSL连接,并将第二该SSL连接存储于连接池中。当下一次对该域名声明HTTPS协议时,则可以直接利用该第二SSL连接进行数据传输以加载网络资源,而不需要重新建立SSL连接,节约了时间,提高了网络资源加载效率。需要说明的是,无论HTTPS协议是否切换成功,均建立上述的第二SSL连接进行备用。可以理解,步骤S31可由预连接模块440执行。
进一步地,步骤S3之后还包括以下步骤S32:当所述HTTPS协议切换失败时,生成对应的记录,并存储于所述预置规则中。在下一次加载该网络资源时,即可依据预置规则中的该记录来确定是否切换网络协议。若HTTPS协议切换失败,即:在协议切换后出现页面或加载过程的异常,例如,原完整URL为https://m.baidu.com,请求切换协议后的http://m.baidu.com返回302响应码,其中跳转的目标地址为https://m.baidu.com/XXX,则认为切换失败。在切换失败之后,生成相关记录并添加到预置规则中,以说明该URL不适合协议切换,在下一次加载该URL(https://m.baidu.com)对应的网络资源时,则可以依据该相关记录不切换网络协议。可以理解,步骤S32可由生成模块450执行。
第三实施例
图6示出了利用本发明实施例提供的网络协议切换方法进行网络资源加载的详细流程图。包括以下步骤:
步骤S10,判断移动终端100是否声明使用HTTPS协议。
在本发明实施例中,用户可以在移动终端100的浏览器中输入声明HTTP协议或者HTTPS协议的URL,例如:http://m.baidu.com(HTTP协议)或者https://m.baidu.com(HTTPS协议),依据用户输入的该URL,移动终端100获取声明使用HTTPS协议或者HTTP协议的请求,并向服务器200发送该请求,以通过该请求向服务器200索取与该URL对应的网络资源进行加载。较佳的,该请求为GET请求。
若移动终端100向服务器200发送声明使用HTTP协议的GET请求,则执行步骤S70,在此情形下,该步骤S70为:按照HTTP协议的原流程加载网络资源,即:建立第一TCP连接,通过第一TCP连接将GET请求发送至服务器200,服务器200依据该GET请求查询与该URL对应的网络资源,并使用该第一TCP连接将网络资源传输至移动终端100进行加载;若移动终端100向服务器200发送声明使用HTTPS协议的GET请求,则执行步骤S20。
步骤S20,查找连接池中是否有可用的第一SSL连接。
在本发明实施例中,连接池可以存储于移动终端100的存储器102。当移动终端100向服务器200发送声明使用HTTPS协议的GET请求时,若查找到连接池中有可用的第一SSL连接,则执行步骤S70,在此情形下,该步骤S70为:使用该SSL连接将GET请求发送至服务器200,服务器200依据该GET请求查询与该URL对应的网络资源,并使用该第一SSL连接将网络资源传输至移动终端100进行加载;若连接池中无可用的第一SSL连接,则执行步骤S30。在本实施例中,可用的第一SSL连接是指未被任何线程使用的空闲的SSL连接。
步骤S30,判断当前网络是否为安全网络。
在本发明实施例中,当前网络可以为WIFI、2G、3G等网络。当当前网络为WIFI网络时,移动终端100可以在接入时根据WIFI网络提供的信息识别该WIFI网络是否是安全的网络,例如,若该WIFI网络是无需任何安全认证措施即可连接的WIFI网络,则移动终端100判定该WIFI网络是不安全的网络,则需要以安全性更高的HTTPS协议进行网络资源加载,因而不需要切换网络协议,按照原流程加载网络资源,即执行步骤S70,在此情形下,该步骤S70为:建立第三SSL连接,使用该第三SSL连接将GET请求发送至服务器200,服务器200依据该GET请求查询与该URL对应的网络资源,并使用该第三SSL连接将网络资源传输至移动终端100进行加载。若该WIFI网络是需要安全认证措施才可连接的WIFI网络,则移动终端100判定该WIFI网络是安全的网络;若当前网络为2G/3G等移动网络时,移动终端100也判定该移动网络是安全的网络。当当前网络为安全网络时,执行步骤S40。
步骤S40,判断服务器200下发的预置规则中是否有与当前网络匹配的预置规则。
在本发明实施例中,预置规则预先存储于服务器200,并在应用程序启动时由服务器200下发至移动终端100。当服务器200下发的预置规则中存在与当前网络匹配的预置规则时,则执行步骤S60:移动终端100依据该预置规则将HTTPS协议切换为HTTP协议,然后再执行步骤S70,在此情形下,该步骤S70为:按照HTTP协议的流程加载网络资源,即:建立第二TCP连接,通过第二TCP连接将GET请求发送至服务器200,服务器200依据该GET请求查询与该URL对应的网络资源,并使用该第二TCP连接将网络资源传输至移动终端100进行加载。当服务器200下发的预置规则中没有与当前网络匹配的预置规则时,则进行步骤S50。
步骤S50,判断当前网络的网络品质是否满足预设标准。
在本发明实施例中,判断网络品质是否满足预设标准的方法与前述第二实施例中的方法相同,在此不再赘述。
当当前网络的网络品质满足预设标准时,则说明当前网络的波动性较小,网络品质较佳,网络的可用性较高。因此,可以采用HTTPS协议进行网络资源加载,以进一步保证网络的安全性。即执行步骤S70,在此情形下,该步骤S70为:建立第四SSL连接,使用该第四SSL连接将GET请求发送至服务器200,服务器200依据该GET请求查询与该URL对应的网络资源,并使用该第四SSL连接将网络资源传输至移动终端100进行加载。
当当前网络的网络品质不满足预设标准时,则说明当前网络的波动性较大,网络品质较差,网络的可用性较低,因而需要首先保证网络的可用性,此时执行步骤S60:将HTTPS协议切换为HTTP协议,然后再执行步骤S70,在此情形下,该步骤S70为:按照HTTP协议的流程加载网络资源,即:建立第三TCP连接,通过第三TCP连接将GET请求发送至服务器200,服务器200依据该GET请求查询与该URL对应的网络资源,并使用该第三TCP连接将网络资源传输至移动终端100进行加载。
需要说明的是,在本发明实施例中,建立TCP连接或SSL连接之后的加载网络资源、解析文档、网页排版等一系列操作均按照现有流程进行,在本发明中不再详细说明。
进一步地,若HTTPS协议切换失败,即:在协议切换后出现页面或加载过程的异常,例如,原完整URL为https://m.baidu.com,请求切换协议后的http://m.baidu.com返回302响应码,其中跳转的目标地址为https://m.baidu.com/XXX,则认为切换失败。在切换失败之后,生成相关记录并添加到预置规则中,以说明该URL不适合协议切换,在下一次加载该URL(https://m.baidu.com)对应的网络资源时,则可以依据该相关记录不切换网络协议。
进一步地,在将HTTPS协议切换为HTTP协议之后,即:将URL的HTTPS协议字段替换为HTTP协议字段之后,建立与所述URL的第二SSL连接,并将所述第二SSL连接存储于连接池以备用。例如,协议切换之前为HTTPS协议,其对应的URL为https://m.baidu.com,则建立域名为m.baidu.com的第二SSL连接,并将第二该SSL连接存储于连接池中。当下一次对该域名声明HTTPS协议时,则可以直接利用该第二SSL连接进行数据传输以加载网络资源,而不需要重新建立SSL连接,节约了时间,提高了网络资源加载效率。需要说明的是,无论HTTPS协议是否切换成功,均建立上述的第二SSL连接进行备用。
本发明实施例提供的一种网络协议切换方法、装置及终端,该网络协议切换方法包括:获取声明使用HTTPS协议的请求以及服务器下发的预置规则;当所述预置规则与当前网络匹配时,依据所述预置规则将HTTPS协议切换为HTTP协议;当所述预置规则与当前网络不匹配时,验证当前网络的网络品质,并且在所述网络品质不满足预设标准时,将HTTPS协议切换为HTTP协议。本发明针对在移动网络中SSL连接建立失败率较TCP连接高的问题,制定相关的策略,在移动终端处理HTTPS协议请求时自动选择使用HTTP协议或HTTPS协议。一方面,主要根据预置规则和当前网络品质等相关策略,通过从HTTPS协议切换到HTTP协议来尽可能满足可用性;另一方面,在请求处理过程中优先使用SSL连接,在避免用户长时间等待连接建立的前提下,使用HTTPS协议,以满足安全性。更进一步地,在触发HTTPS协议到HTTP协议切换后,则尝试建立SSL连接备用;若切换失败,则生成相关规则并记录到预置规则中,以提高网络资源加载速度,提升了用户体验。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。