iOS系统透明代理的实现方法及系统的制作方法

文档序号:7996897阅读:178来源:国知局
iOS系统透明代理的实现方法及系统的制作方法
【专利摘要】本发明实施例公开了一种iOS系统透明代理的实现方法及系统,涉及互联网【技术领域】,解决了当前在iOS平台下的透明代理的设置的实现较为复杂的问题。所述方法包括:由iOS系统中的NSURLConnection模块发送面向网络服务器的网络请求;由iOS系统中的NSURLProtocol模块拦截所述网络请求,并将所述网络请求转发给代理服务器;所述NSURLProtocol模块接收由所述代理服务器对所述网络请求的响应而返还的数据内容;所述NSURLProtocol模块对所述数据内容进行解析处理并返回给所述NSURLConnection模块。本发明适用于透明代理技术中。
【专利说明】!OS系统透明代理的实现方法及系统
【技术领域】
[0001]本发明涉及互联网【技术领域】,尤其涉及一种1S系统透明代理的实现方法及系统。
【背景技术】
[0002]目前,代理技术已经在互联网【技术领域】中得到了广泛的应用。代理技术中所应用的代理服务器是一种重要的安全功能,该代理服务器的工作主要在客户端与目的网络服务器之间,从而起到防火墙的作用,还用于实现对请求的转发,网页页面的格式转换、适配,资源压缩等功能。代理服务器大多被用来连接国际互联网和局域网。当前,在苹果公司的1S平台下,在无线网络设置时,可以针对某一无线网络进行代理服务器的设置。此种方式需要应用1S终端的用户来进行设置,因此该代理技术属于非透明代理技术。
[0003]与非透明代理技术相对的是透明代理技术。透明代理是代理服务器只应用于运行于电子装置中的某一第三方应用程序(Applicat1n,简称App),而该代理服务器对于使用该电子装置的用户和其他的App不可见的一种代理方式。当前,可以通过私有的应用程序编程接口(Applicat1n Programming Interface,简称API)来修改App的代理设置,从而完成透明代理。
[0004]然而,现有透明代理技术中至少存在如下问题:
[0005]通过私有API来实现1S平台下的透明代理的方式不满足1S的开发协议,使得在1S平台透明代理的实现较为复杂。

【发明内容】

[0006] 本发明的实施例提供一种1S系统透明代理的实现方法及系统,能够解决现有技术中1S平台透明代理的设置的实现较为复杂的问题。
[0007]一种1S系统透明代理的实现方法,包括:
[0008]由1S系统中的NSURLConnect1n模块发送面向网络服务器的网络请求;
[0009]由1S系统中的NSURLProtocol模块拦截所述网络请求,并将所述网络请求转发给代理服务器;
[0010]所述NSURLProtocol模块接收由所述代理服务器对所述网络请求的响应而返还的数据内容;
[0011]所述NSURLProtocol模块对所述数据内容进行解析处理并返回给所述NSURLConnect1n 模块。
[0012]一种1S系统透明代理的实现系统,包括=NSURLConnect1n模块、NSURLProtocol模块以及代理服务器;
[0013]所述NSURLConnect1n模块,用于发送面向网络服务器的网络请求;
[0014]所述NSURLProtocol模块,用于拦截所述网络请求,并将所述网络请求转发给代理服务器;[0015]所述NSURLProtocol模块,还用于接收由所述代理服务器对所述网络请求的响应而返还的数据内容;
[0016]所述NSURLProtocol模块,还用于对所述数据内容进行解析处理并返回给所述NSURLConnect1n 模块。
[0017]所述1S系统透明代理的实现方法及系统,通过1S系统中提供的NSURLProtocol模块来实现拦截所述网络请求,并向代理服务器发送网络请求,而使得返回数据内容的是代理服务器,同时整个过程无需用户的操作,达到了透明代理的目的,并在满足1S的开发协议的情况下,实现App级的透明代理。
【专利附图】

【附图说明】
[0018]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本发明实施例提供的1S系统透明代理的实现方法的流程图;
[0020]图2为本发明又一实施例提供的1S系统透明代理的实现方法的流程图;
[0021]图3为本发明实施例提供的与图1所示的1S系统透明代理的实现方法相对应的1S系统透明代理的实现系统的结构示意图;
[0022]图4为本发明实施例提供的与图2所示的1S系统透明代理的实现方法相对应的1S系统透明代理的实现系统的结构示意图。
【具体实施方式】
[0023]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024]为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。
[0025]如图1所示,本发明实施例提供的1S系统透明代理的实现方法,包括:
[0026]步骤101,在此步骤中,由1S系统中的NSURLConnect1n模块发送面向网络服务器的网络请求。
[0027]其中,所述网络请求用于向所述网络服务器请求数据内容。
[0028]具体的,所述NSURLConnect1n模块是1S平台中用于下载网页地址的数据内容,提供简单的接口创建或放弃连接网络服务器,同时可以用于连接网络服务器过程中的反馈和控制。
[0029]所述网络服务器为所述网络请求所对应的服务器,例如所述NSURLConnect1n模块发送的网络请求是请求加载一个网页地址,则所述网络服务器为所述网页地址对应的服务器。
[0030]步骤102,在此步骤中,由1S系统中的NSURLProtocol模块拦截所述网络请求,并将所述网络请求转发给代理服务器。
[0031]具体的,所述NSURLProtocol模块一般在1S平台中对数据可以进行缓存工作,还可以通过NSURLProtocol模块拦截所述网络请求,并可以将所述网络请求转发给代理服务器。
[0032]步骤103,在此步骤中,所述NSURLProtocol模块接收由所述代理服务器对所述网络请求的响应而返还的数据内容。
[0033]具体的,所述代理服务器处的数据内容可以是预先缓存于所述代理服务器中的,也可以是在接收到网络请求后,向网络服务器获取的数据内容。
[0034]值得说明的是,所述NSURLProtocol模块拦截所述网络请求仅作用于第三方应用程序(Applicat1n,简称App)内部,不会影响到1S平台下的其他App的网络连接。所述第三方应用程序可以是浏览器以及能够打开网页的App等,但不仅局限于此。
[0035]步骤104,在此步骤中,所述NSURLProtocol模块对所述数据内容进行解析处理并返回给所述NSURLConnect1n模块。
[0036]具体的,所述NSURLConnect1n模块在接收到所述解析后的数据内容时,并不能够获知所述解析后的数据内容是来自于所述代理服务器还是所述网络服务器的,因此达到了透明代理的目的。
[0037]本发明实施例所述的1S系统透明代理的实现方法,通过1S系统中提供的NSURLProtocol模块来实现拦截所述网络请求,并向代理服务器发送网络请求,而使得返回数据内容的是代理服务器,同时整个过程无需用户的操作,达到了透明代理的目的,并在满足1S的开发协议的情况下,实现App级的透明代理。
[0038]如图2所示,本发明又一实施例提供的1S系统透明代理的实现方法,包括:
[0039]步骤201,在此步骤中,网页打开控件获取到要加载的网页地址。
[0040]具体的,所述网页打开控件(UlWebView)是1S系统平台软件开发工具包中一个最常用的控件,是内置的浏览器控件,我们可以用它来浏览网页、打开文档等等。
[0041]具体的,所述网页打开控件可以是向外提供用于输入网页地址的输入框,在所述输入框中输入所述网页地址后,从而获取到所述网页地址,但不仅局限于此。
[0042]步骤202,在此步骤中,由1S系统中的NSURLConnect1n模块根据所述网页地址,向网络服务器发送网络请求。
[0043]其中,所述网络请求用于向所述网络服务器请求数据内容。所述数据内容用于所述网页打开控件进行网页的显示。
[0044]具体的,所述NSURLConnect1n模块是1S平台中用于下载网页地址的数据内容,提供简单的接口创建或放弃连接网络服务器,同时可以用于连接网络服务器过程中的反馈和控制。
[0045]所述网络服务器为所述网络请求所对应的服务器,例如所述NSURLConnect1n模块发送的网络请求是请求加载一个网页地址,则所述网络服务器为所述网页地址对应的服务器。
[0046]步骤203,在此步骤中,由1S系统中的NSURLProtocol模块拦截所述网络请求,并将所述网络请求转发给代理服务器。执行步骤204或者步骤205。
[0047]具体的,所述NSURLProtocol模块一般在1S平台中对数据可以进行缓存工作,还可以通过NSURLProtocol模块拦截所述网络请求,并可以将所述网络请求转发给代理服务器。
[0048]其中,所述NSURLProtocol模块可以通过1S系统的底层应用程序编程接口(Applicat1n Programming Interface,简称API)来实现网页地址URL的加载功能。此夕卜,通过NSURL还可以通过Protocol拦截了 NSURLConnect1n的网络请求后,除了通过1S系统的底层API来实现URL的加载功能,还可以通过第三方统一资源定位符URL加载库中的ASIRequest将所述网络请求转发给所述代理服务器。具体的,由于通过1S的底层API来实现网页地址URL的加载较为繁琐复杂,因此,若通过所述第三方URL加载库中的ASIRequest,简化了网络通信,并提供了文件上传工具、重定向处理工具、以及验证工具等便捷的工具,从而简化了所述网络请求的发送。
[0049]其中,所述NSURLProtocol模块与所述代理服务器保持长连接。具体的,通过开启网络连接的连接复用能力,并与所述代理服务器保持长连接,可以减少网页加载的时间,提升网页加载的速度。
[0050]值得说明的是,所述NSURLProtocol模块拦截所述网络请求仅作用于第三方应用程序(Applicat1n,简称App)内部,不会影响到1S平台下的其他App的网络连接,从而在后续过程中便于实现了 App级的透明代理。所述第三方应用程序可以是浏览器以及能够打开网页的App等,但不仅局限于此。上述的App级的透明代理表示透明代理的过程仅针对于单一的App,而不针对1S系统下的其他App。
[0051]步骤204,在此步骤中,在所述代理服务器的缓存中存有所述网络请求所请求的数据内容时,所述代理服务器将所述数据内容返回给所述NSURLProtocol模块。继续执行步骤 208。
[0052]步骤205,在此步骤中,在所述代理服务器的缓存中未存有所述网络请求所请求的数据内容时,所述代理服务器将所述网络请求发送给所述网络服务器。
[0053]步骤206,在此步骤中,所述网络服务器根据所述网络请求,向所述代理服务器返回所述数据内容。
[0054]步骤207,在此步骤中,所述代理服务器将将所述数据内容返回给所述NSURLProtocol模块。继续执行步骤208。
[0055]步骤208,在此步骤中,所述NSURLProtocol模块对所述数据内容进行解析,并将解析后的数据内容发送给所述NSURLConnect1n模块。
[0056]具体的,所述NSURLConnect1n模块在接收到所述解析后的数据内容时,不能够获知所述解析后的数据内容是来自于所述代理服务器还是所述网络服务器的,因此达到了透明代理的目的。
[0057]步骤209,在此步骤中,所述NSURLConnect1n模块将所述解析后的数据内容发送到网页打开控件。
[0058]步骤210,在此步骤中,所述网页打开控件根据所述解析后的数据内容进行网页显
/Jn ο
[0059]本发明又一实施例所述的1S系统透明代理的实现方法,通过1S系统中提供的NSURLProtocol模块来实现拦截所述网络请求,并向代理服务器发送网络请求,而使得返回数据内容的是代理服务器,同时整个过程无需用户的操作,达到了透明代理的目的,并在满足1S的开发协议的情况下,实现App级的透明代理。
[0060]如图3所示,本发明实施例提供的1S系统透明代理的实现系统,包括:NSURLConnect1n 模块 31、NSURLProtocol 模块 32 以及代理服务器 33 ;
[0061]所述NSURLConnect1n模块31,用于发送面向网络服务器34的网络请求。其具体实现方式参见图1中步骤101所示,此处不再赘述。
[0062]所述NSURLProtocol模块32,用于拦截所述网络请求,并将所述网络请求转发给代理服务器33。其具体实现方式参见图1中步骤102所示,此处不再赘述。
[0063]所述NSURLProtocol模块32,还用于接收由所述代理服务器33对所述网络请求的响应而返还的数据内容。其具体实现方式参见图1中步骤103所示,此处不再赘述。
[0064]所述NSURLProtocol模块32,还用于对所述数据内容进行解析处理并返回给所述NSURLConnect1n 模块 31。
[0065]具体的,如图4所示,所述NSURLProtocol模块32,具体用于:
[0066]通过第三方统一资源定位符URL加载库中的ASIRequest将所述网络请求转发给所述代理服务器33。
[0067]具体的,所述NSURLProtocol模块32与所述代理服务器33保持长连接。
[0068]具体的,如图4所示,所述系统还包括网页打开控件35。
[0069]所述NSURLProtocol模块32,还用于对所述数据内容进行解析,并将解析后的数据内容发送给所述NSURLConnect1n模块31。
[0070]所述NSURLConnect1n模块31,还用于将解析后的数据内容发送到网页打开控件35。
[0071 ] 所述网页打开控件35,用于根据所述解析后的数据内容进行网页显示。
[0072]进一步的,如图4所示,所述代理服务器33,还用于在所述代理服务器33的缓存中未存有所述网络请求所请求的数据内容时,将所述网络请求发送给所述网络服务器34。
[0073]所述网络服务器34,还用于根据所述网络请求,向所述代理服务器33返回所述数据内容。
[0074]具体的,本发明实施例提供的1S系统透明代理的实现系统的具体实现方式可以参见图2中的1S系统透明代理的实现方法的具体实施例,此处不再赘述。
[0075]本发明实施例所述的1S系统透明代理的实现系统,通过1S系统中提供的NSURLProtocol模块来实现拦截所述网络请求,并向代理服务器发送网络请求,而使得返回数据内容的是代理服务器,同时整个过程无需用户的操作,达到了透明代理的目的,并在满足1S的开发协议的情况下,实现App级的透明代理。
[0076]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有
的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包
括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0077]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0078]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0079]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种1S系统透明代理的实现方法,其特征在于,包括: 由1S系统中的NSURLConnect1n模块发送面向网络服务器的网络请求; 由1S系统中的NSURLProtocol模块拦截所述网络请求,并将所述网络请求转发给代理服务器; 所述NSURLProtocol模块接收由所述代理服务器对所述网络请求的响应而返还的数据内容; 所述NSURLProtocol模块对所述数据内容进行解析处理并返回给所述NSURLConnect1n 模块。
2.根据权利要求1所述的1S系统透明代理的实现方法,其特征在于, 所述NSURLProtocol模块通过第三方统一资源定位符URL加载库中的ASIRequest将所述网络请求转发给所述代理服务器。
3.根据权利要求2所述的1S系统透明代理的实现方法,其特征在于,所述NSURLProtocol模块与所述代理服务器保持长连接。
4.根据权利要求3所述的1S系统透明代理的实现方法,其特征在于,在所述NSURLProtocol模块对所述数据内容进行解析处理并返回给NSURLConnect1n模块之后,还包括: 所述NSURLConnect1n模块将解析后的数据内容发送到网页打开控件; 所述网页打开控件根据所述解析后的数据内容进行网页显示。
5.根据权利要求4所述的1S系统透明代理的实现方法,其特征在于,在所述NSURLProtocol模块拦截所述网络请求,并将所述网络请求转发给代理服务器之后,还包括: 在所述代理服务器的缓存中未存有所述网络请求所请求的数据内容时,所述代理服务器将所述网络请求发送给所述网络服务器; 所述网络服务器根据所述网络请求,向所述代理服务器返回所述数据内容。
6.一种1S系统透明代理的实现系统,其特征在于,包括:NSURLConnect1n模块、NSURLProtocol模块以及代理服务器; 所述NSURLConnect1n模块,用于发送面向网络服务器的网络请求; 所述NSURLProtocol模块,用于拦截所述网络请求,并将所述网络请求转发给代理服务器; 所述NSURLProtocol模块,还用于接收由所述代理服务器对所述网络请求的响应而返还的数据内容; 所述NSURLProtocol模块,还用于对所述数据内容进行解析处理并返回给所述NSURLConnect1n 模块。
7.根据权利要求6所述的1S系统透明代理的实现系统,其特征在于,所述NSURLProtocol模块,具体用于: 通过第三方统一资源定位符URL加载库中的ASIRequest将所述网络请求转发给所述代理服务器。
8.根据权利要求7所述的1S系统透明代理的实现系统,其特征在于,所述NSURLProtocol模块与所述代理服务器保持长连接。
9.根据权利要求8所述的1S系统透明代理的实现系统,其特征在于,还包括网页打开控件; 所述NSURLConnect1n模块,还用于将解析后的数据内容发送到网页打开控件; 所述网页打开控件,用于根据所述解析后的数据内容进行网页显示。
10.根据权利要求9所述的1S系统透明代理的实现系统,其特征在于,所述代理服务器,还用于在所述代理服务器的缓存中未存有所述网络请求所请求的数据内容时,将所述网络请求发送给所述网络服务器; 所述网络服务器,还用于根据所述网络请求,向所述代理服务器返回所述数据内容。
【文档编号】H04L29/08GK104038510SQ201310067361
【公开日】2014年9月10日 申请日期:2013年3月4日 优先权日:2013年3月4日
【发明者】黄江泉 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1