公开/公告号CN103179173A
专利类型发明专利
公开/公告日2013-06-26
原文格式PDF
申请/专利权人 腾讯科技(深圳)有限公司;
申请/专利号CN201110441716.1
申请日2011-12-26
分类号H04L29/08;
代理机构北京三高永信知识产权代理有限责任公司;
代理人罗振安
地址 518000 广东省深圳市福田区赛格科技园2栋东403室
入库时间 2024-02-19 19:33:17
法律状态公告日
法律状态信息
法律状态
2018-03-02
授权
授权
2015-01-07
实质审查的生效 IPC(主分类):H04L29/08 申请日:20111226
实质审查的生效
2013-06-26
公开
公开
技术领域
本发明涉及网络技术领域,特别涉及一种超文本传输系统、客户端和超文本传输方法。
背景技术
在网络系统中,客户端与网络服务端可以基于超文本传输协议(HyperText Transfer Protocol,简称HTTP)进行通信。在移动终端的操作系统中,如塞班(Symbian)操作系统, 安卓(android)操作系统等,http协议是客户端和服务端请求和应答的标准,是供客户端 和服务端进行数据交互所使用的协议。
在操作系统的应用程序和网络服务端之间进行数据交互时,经常需要使用操作系统提供 的Http类库,需要处理一些繁琐的数据交互流程。每执行一个Http操作,都需要使用Http 类库处理与网络服务端的数据交互。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
操作系统的应用程序与网络服务端之间进行数据交互时,Http类的使用复杂度较高,数 据交互运行的效率较低。
发明内容
为了降低Http传输中Http类的使用复杂度并提高数据交互运行的效率,本发明实施例 提供了一种超文本传输系统、客户端和超文本传输方法。所述技术方案如下:
本发明实施例提供了一种超文本传输系统,所述系统包括客户端和服务端;
所述客户端,用于将每个http请求封装为一个客户端超文本传输对象,对所述客户端超 文本传输对象进行排序管理,并将排序后的所述客户端超文本传输对象发送给所述服务端, 获取所述服务端返回的处理结果;
所述服务端,用于根据所述客户端发送的客户端超文本传输对象得到http请求,并对所 述http请求进行处理得到处理结果,并将所述处理结果发送给所述客户端。
其中,所述客户端包括至少一个传输模块、管理模块和交互模块;
所述传输模块,用于将http请求封装为客户端超文本传输对象,并将所述客户端超文本 传输对象发送给所述管理模块;
所述管理模块,用于接收所述传输模块发送的至少一个客户端超文本传输对象,对所述 至少一个客户端超文本传输对象进行排序管理;
所述交互模块,用于将排序后的所述客户端超文本传输对象发送给所述服务端,并获取 所述服务端返回的处理结果。
其中,所述传输模块具体用于,根据Http连接协议和Http传输协议,将http请求封装 为客户端超文本传输对象,并将所述客户端超文本传输对象发送给所述管理模块。
进一步地,所述管理模块还提供调用接口,用于对所述客户端中的至少一个应用提供服 务。
进一步地,所述超文本传输管理类还包括存储单元,用于存储每次http请求的处理结果。
本发明实施例还提供了一种客户端,所述客户端包括传输模块、管理模块和交互模块;
所述传输模块,用于将每个http请求封装为一个客户端超文本传输对象,并将所述客户 端超文本传输对象发送给所述管理模块;
所述管理模块,用于接收所述传输模块发送的客户端超文本传输对象,对将所述客户端 超文本传输对象进行排序管理;
所述交互模块,用于将排序后的所述客户端超文本传输对象发送给所述服务端,并获取 所述服务端返回的处理结果。
其中,所述传输模块具体用于,根据Http连接协议和Http传输协议,将http请求封装 为客户端超文本传输对象,并将所述客户端超文本传输对象发送给所述管理模块。
其中,所述管理模块具体用于,接收所述传输模块发送的至少一个客户端超文本传输对 象,并将所述至少一个客户端超文本传输对象进行排序管理。
其中,所述管理模块还提供调用接口,用于对客户端中的至少一个应用提供服务。
其中,所述管理模块还包括存储单元,用于存储每次http请求的处理结果。
本发明实施例还提供了一种超文本传输方法,所述方法包括:
客户端将每个http请求封装为一个客户端超文本传输对象,并对所述客户端超文本传输 对象进行排序管理;
客户端将排序后的所述客户端超文本传输对象发送给服务端,并接收所述服务端返回的 处理结果。
进一步地,服务端接收所述客户端超文本传输对象,并根据所述客户端超文本传输对象 得到http请求;
对所述http请求进行处理得到处理结果,并将所述处理结果发送给所述客户端。
其中,所述将每个http请求封装为一个客户端超文本传输对象,并对所述客户端超文本 传输对象进行排序管理,具体包括:
客户端根据Http连接协议和Http传输协议,将每个http请求封装为一个客户端超文本 传输对象,并对所述客户端超文本传输对象进行排序管理。
进一步地,所述方法还包括:客户端存储每次http请求的处理结果。
本发明实施例还提供了一种服务端,所述服务端包括:
接收模块,用于接收客户端发送的根据每个http请求封装得到的客户端超文本传输对象;
获取模块,用于根据所述接收模块接收的所述客户端超文本传输对象得到http请求;
处理模块,用于对所述获取模块得到的所述http请求进行处理得到处理结果,并将所述 处理结果发送给所述客户端。
本发明实施例还提供了一种超文本传输方法,所述方法包括:
接收客户端发送的根据每个http请求封装得到的客户端超文本传输对象;
根据所述客户端超文本传输对象得到http请求;
对所述http请求进行处理得到处理结果,并将所述处理结果发送给所述客户端。
本发明实施例提供的技术方案带来的有益效果是:通过在客户端将http请求过滤掉一些 http状态后封装为客户端超文本传输对象,并管理不同Http操作对应的客户端超文本传输对 象,从而每次执行Http操作时,由客户端根据客户端超文本传输对象进行数据交互,用户能 够更方便的处理与网络服务端的数据交互,降低了Http传输中Http类的使用复杂度;应用 该系统进行程序开发时,也加快了程序开发速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附 图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域 普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中提供的超文本传输系统的结构示意图;
图2是本发明实施例2中提供的超文本传输系统的结构示意图;
图3是本发明实施例3中提供的客户端的结构示意图;
图4是本发明实施例4中提供的超文本传输方法的流程图;
图5是本发明实施例5中提供的服务端的结构示意图;
图6是本发明实施例6中提供的另一超文本传输方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进 一步地详细描述。
实施例1
参见图1,本发明实施例提供了一种超文本传输系统,所述系统包括客户端101和服务 端102;
客户端101,用于将每个http请求封装为一个客户端超文本传输对象,对客户端超文本 传输对象进行排序管理,并将排序后的客户端超文本传输对象发送给服务端102,获取服务 端102返回的处理结果;
服务端102,用于根据客户端101发送的客户端超文本传输对象得到http请求,并对http 请求进行处理得到处理结果,并将处理结果发送给客户端101。
本发明实施例提供系统,通过在客户端将http请求封装为超文本传输对象,并管理不同 Http操作对应的超文本传输对象,从而每次执行Http操作时,由客户端根据超文本传输对象 进行数据交互,用户能够更方便的处理与网络服务端的数据交互,降低了超文本传输系统的 使用复杂度;应用该系统进行程序开发时,也加快了程序开发速度。
实施例2
参见图2,本发明实施例提供了一种超文本传输系统,所述系统包括客户端201和服务 端202,
其中,客户端201将每个http请求封装为一个超文本传输对象,对该超文本传输对象进 行排序管理,并将超文本传输对象发送给服务端,获取服务端返回的处理结果,该处理结果 包括正确响应的信息和异常信息,客户端会根据返回的处理结果进行相应操作;
具体地,客户端201包括至少一个传输模块201a、管理模块201b和交互模块201c;
传输模块201a,用于提供Http请求的底层功能,并根据每个http请求封装为一个客户端 超文本传输对象,并将客户端超文本传输对象发送给管理模块201b;
实际应用中,该传输模块可以包括CHttpClient类,根据每个http请求封装的客户端超文 本传输对象为CHttpClient对象。具体地,客户端发起http请求时,操作系统的Http系统将 该http请求进行简化和封装,得到CHttpClient类,本发明实施例以Symbian系统为例进行说 明,但并不用来限定本发明,本发明同样适用于其他的操作系统,如安卓操作系统等。
一般地,CHttpClient类可以为http请求的RHTTPSession(Http连接协议)和 RHTTPTransaction(Http传输协议)的基础上进行简化和封装,即根据Symbian Http连接协 议和Symbian Http传输协议,将http请求封装为客户端超文本传输对象。具体的简化和封装 操作,主要是对RHTTPSession和RHTTPTransaction的使用流程中需要处理的状态通知和数 据回调,进行统一管理。HTTP的状态信息比较多,包括连接失败,连接成功,发送失败, 发送成功,系统重定向,系统错误等等,这种状态通知有些是上层应用不需要关心的,最后 由CHttpClient统一负责过滤,上层应用只会关心本次请求是否会成功,本发明实施例可以预 设4种HTTP的状态:连接成功,连接失败,发送成功和发送失败,CHttpClient最终会把这 些状态通知上层应用。由于CHttpClient会过滤掉上层应用不关心的一些http状态,降低了 Symbian Http系统的使用复杂度。上层应用通过注册回调接口的方式告诉CHttpClient需要关 心的状态。其中,RHTTPSession是Symbian系统中的一种HTTP会话类。RHTTPTransaction 是Symbian系统中的一种http处理类,包括请求和应答,通过 RHTTPSession::OpenTransactionL()创建并打开。
CHttpClient类负责提供Http请求的底层功能,维护与远程服务端的数据交互。实际应用 中,Http请求的底层功能包括构造请求、发送请求、处理请求和通知上层模块数据处理等; 维护与远程服务端的数据交互包括连接维护、状态通知等比较基础的功能。其中,CHttpClient 类的状态通知只提供上层业务所关心的状态,状态通知相对简化。
本发明实施例中,CHttpClient类只负责处理单个http连接的操作功能,降低了Http操作 的复杂度。实际应用中,若需要同时处理多个http请求操作,CHttpClient类创建多个 CHttpClient对象,具体地,根据每个http请求操作进行封装得到CHttpClient类,并由 CHttpClient类根据该http请求创造CHttpClient对象。
管理模块201b,用于接收传输模块发送的至少一个客户端超文本传输对象,将至少一个 客户端超文本传输对象进行排序管理;
实际应用中,该管理模块可以包括CHttpClientManager类,本发明实施例支持客户端发 起的多个http并发请求,将每个http请求封装为CHttpClient类,且CHttpClient类根据每个 http请求封装一个CHttpClient对象,生成CHttpClient对象列表,由CHttpClientManager类负 责管理CHttpClient对象列表。
进一步地,该管理模块201b还用于提供调用接口,用于对客户端中的至少一个应用提供 服务,如对客户端的上层应用提供http服务。
实际应用中,该管理模块可以包括CHttpClientManager类,CHttpClientManager类给客户 端的应用提供调用接口,调用接口可以为StartRequest()接口,用户只需要调用 CHttpClientManager类的StartRequest()接口,就可以使用http服务。
优选地,本发明实施例中的管理模块不仅对CHttpClient对象列表进行管理维护,还设置 了一个存储单元,用于存储每次http请求的结果,其中,该存储单元可以为CHttpClient连接 池。通过设置CHttpClient连接池,保证了每次http请求完成后,将http请求的结果放入 CHttpClient池中,供下次请求使用,提高CHttpClient类的使用效率,减少重复创建http连 接所产生的容量消耗。
交互模块201c,用于将排序后的客户端超文本传输对象发送给服务端,并获取服务端返 回的处理结果。
另外,该系统是在客户端/服务端模式下工作,通过采用Symbian C/S模式,将http处理 流程和上层用户界面(上层UI,User Interface)的调用操作分离在不同的进程,其中,上层 UI中包括上层应用。
实际应用中,通过对http请求的封装,上层应用可以通过CHttpClientManager类使用http 服务,也就是http的请求流程和上层UI可能会在同一个进程里面运行,http的请求流程可能 会影响上层UI操作的效率,http的请求流程和上层UI的耦合性较高。因而,本发明实施例 为了减少上层UI和Http请求流程的耦合性,客户端/服务端的框架采用Symbian C/S框架, 将UI界面逻辑和HTTP功能分离在不同的进程,减少对UI界面的影响,提高界面响应。其中, 上层UI的处理操作一般包括界面更新,用户交互响应(如,用户点击,文字输入等)。
其中,Symbian C/S框架中,上层UI和Http请求流程是在不同的进程里面运行,Http请 求流程的异常不会影响到上层UI,同理,上层UI的异常也不会影响到Http请求流程,减少 了上层UI和Http请求流程的耦合性,提高性能和稳定性,从而提高UI的用户体验度。
实际应用中,上层UI可以通过CQQDeskHttpClient客户端类即可使用http服务, CQQDeskHttpClient处理与CServerHttp对应服务端类之间的交互细节,上层UI不需要关心 Http请求流程。
本发明实施例提供的系统,通过在客户端过滤掉一些http状态后将http请求封装为超 文本传输对象,并管理不同Http操作对应的超文本传输对象,从而每次执行Http操作时,由 客户端根据超文本传输对象进行数据交互,用户能够更方便的处理与网络服务端的数据交互, 降低了操作系统中Http使用复杂度;应用该系统进行程序开发时,也加快了程序开发速度, 解决了使用原有操作系统自有Http类库带来的一系列缺点,如开发困难,人工维护容易出错, 代价高的问题,可以适应需求的快速变更。另外,该系统能够存储每次http请求的处理结果, 提高了连接复用,减少重复创建连接所产生的消耗。而且,上层UI的界面逻辑和HTTP的处 理功能分离在不同的进程,减少对上层UI的影响,提高界面响应。
实施例3
参见图3,本发明实施例提供了一种客户端,客户端包括至少一个传输模块301、管理模 块302和交互模块303;
传输模块301,用于将每个http请求封装为一个客户端超文本传输对象,并将客户端超 文本传输对象发送给管理模块302;
管理模块302,用于接接收所述传输模块301发送的客户端超文本传输对象,并将客户 端超文本传输对象进行排序管理;
交互模块303,用于将排序后的客户端超文本传输对象发送给服务端,并获取服务端返 回的处理结果。
其中,该客户端是指上述实施例2中记载的客户端。
其中,传输模块301具体用于,根据Http连接协议和Http传输协议,将http请求封装 为客户端超文本传输对象,并将客户端超文本传输对象发送给管理模块302。
其中,管理模块302具体用于,接收传输模块发送的至少一个客户端超文本传输对象, 并将至少一个客户端超文本传输对象进行排序管理。
其中,管理模块302还提供调用接口,用于对客户端中的至少一个应用提供服务。
进一步地,管理模块302还包括存储单元,用于存储每次http请求的处理结果。
本发明实施例提供的客户端,通过将http请求过滤掉一些http状态后封装为超文本传 输对象,并管理不同Http操作对应的超文本传输对象,从而每次执行Http操作时,由客户端 根据超文本传输对象进行数据交互,用户能够更方便的处理与网络服务端的数据交互,降低 了操作系统的Http使用复杂度;应用该系统进行程序开发时,也加快了程序开发速度,解决 了使用原有操作系统自有Http类库带来的一系列缺点,如开发困难,人工维护容易出错,代 价高的问题,可以适应需求的快速变更。另外,该客户端能够存储每次http请求的处理结果, 提高了连接复用,减少重复创建连接所产生的消耗。而且,上层UI的界面逻辑和HTTP的处 理功能分离在不同的进程,减少对上层UI的影响,提高界面响应。
实施例4
参见图4,本发明实施例提供了一种超文本传输方法,所述方法包括:
步骤401:客户端将每个http请求封装为一个客户端超文本传输对象,并对客户端超文 本传输对象进行排序管理;
步骤402:客户端将排序后的客户端超文本传输对象发送给服务端,使服务端返回处理 结果。
其中,本发明实施例以Symbian系统为例进行说明,但并不用来限定本发明,本发明同 样适用于其他的操作系统,如安卓操作系统等。
其中,将每个http请求封装为一个客户端超文本传输对象,并对客户端超文本传输对象 进行排序管理,具体包括:
客户端根据Http连接协议和Http传输协议,将每个http请求封装为一个客户端超文本 传输对象,并对客户端超文本传输对象进行排序管理。
进一步地,所述方法还包括,客户端存储每次http请求的处理结果。
本发明实施例提供的方法,通过将http请求过滤掉一些http状态后封装为超文本传输 对象,并管理不同Http操作对应的超文本传输对象,从而每次执行Http操作时,由客户端根 据超文本传输对象进行数据交互,用户能够更方便的处理与网络服务端的数据交互,降低了 操作系统的Http使用复杂度;应用该系统进行程序开发时,也加快了程序开发速度,解决了 使用原有操作系统自有Http类库带来的一系列缺点,如开发困难,人工维护容易出错,代价 高的问题,可以适应需求的快速变更。另外,该系统能够存储每次http请求的处理结果,提 高了连接复用,减少重复创建连接所产生的消耗。而且,上层UI的界面逻辑和HTTP的处理 功能分离在不同的进程,减少对上层UI的影响,提高界面响应。
本实施例提供的客户端和方法,具体可以与系统实施例属于同一构思,其具体实现过程 详见系统实施例,这里不再赘述。
实施例5
参见图5,本发明实施例提供了一种服务端,所述服务端包括:
接收模块501,用于接收客户端发送的根据每个http请求封装得到的客户端超文本传输 对象;
获取模块502,用于根据接收模块501接收的客户端超文本传输对象得到http请求;
处理模块503,用于对获取模块502得到的http请求进行处理得到处理结果,并将处理 结果发送给客户端。
本发明实施例提供的服务端,通过接收到客户端发送的封装了http请求的客户端超文本 传输对象,并对其处理后返回给客户端处理结果,与客户端之间通过超文本传输对象进行数 据交互,用户能够更方便的处理与客户端的数据交互,降低了操作系统的Http使用复杂度; 应用该系统进行程序开发时,也加快了程序开发速度,解决了使用原有操作系统自有Http类 库带来的一系列缺点,如开发困难,人工维护容易出错,代价高的问题,可以适应需求的快 速变更。
实施例6
参见图6,本发明实施例还提供了一种超文本传输方法,所述方法包括:
步骤601:接收客户端发送的根据每个http请求封装得到的客户端超文本传输对象;
步骤602:根据客户端超文本传输对象得到http请求;
步骤602:对http请求进行处理得到处理结果,并将处理结果发送给客户端。
本发明实施例提供的方法,通过接收到客户端发送的封装了http请求的客户端超文本传 输对象,并对其处理后返回给客户端处理结果,与客户端之间通过超文本传输对象进行数据 交互,用户能够更方便的处理与客户端的数据交互,降低了操作系统的Http使用复杂度;应 用该系统进行程序开发时,也加快了程序开发速度,解决了使用原有操作系统自有Http类库 带来的一系列缺点,如开发困难,人工维护容易出错,代价高的问题,可以适应需求的快速 变更。
本实施例提供的服务端和方法,具体可以与系统实施例属于同一构思,其具体实现过程 详见系统实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成, 也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中, 上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之 内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 超文本的传输方法及超文本传输服务器设备
机译: 超文本传输协议中继和具有超文本传输协议中继的用于传输附加信息的系统以及用于传输附加信息的方法
机译: 具有超文本传输协议中继的超文本传输协议中继以及用于传输附加信息的系统以及用于传输附加信息的方法