一种基于c/s架构浏览器的数据传输方法及服务器的制作方法

文档序号:6603137阅读:206来源:国知局
专利名称:一种基于c/s架构浏览器的数据传输方法及服务器的制作方法
技术领域
本发明涉及无线互联网领域,具体地说,涉及一种基于C(Client,客户端)/ S (Server,服务器端)架构浏览器的数据传输方法及服务器。
背景技术
C/S架构,即是客户端和服务器端结构,它是软件系统体系结构,可以充分利用两 端硬件环境的优势,合理分配任务到两端来实现,降低了系统的通讯开销。排版引擎服务 器,其负责取得网页的内容(包括源代码及图像等),整理信息,以及计算网页的显示方式 然后输出至客户端进行显示或打印,所有网页浏览器、电子邮件客户端以及其它需要编辑、 显示网络内容的应用程序都需要排版引擎服务器进行排版处理。现有的基于C/S架构浏览器的数据传输方案主要为根据客户端浏览器类型,排版引擎服务器将获取的HTML(Hyper TextMark-up Language, IS il^t/Kidip'H')WML (Wireless Mark-upLanguage, ^c^feidip-h") 或 XHTML-MP (XHTML Mobile Profile, XHTML 的子集,HTML 和 XML 的结合)。该方法通常是 对HTML元素按照对应关系转换成WAP (Wireless Applicaion Protocol,无线应用协议) 标记语言元素,然后直接将转换后的标记语言传送给客户端,利用客户端的WAP浏览器对 web (互联网)网页进行浏览。发明人发现,现有的基于C/S架构浏览器的数据传输方案主要存在以下缺陷1、用户体验低。在HTML到丽L或XHTML-MP的转换过程中,无法准确有效地对HTML 中样式单信息进行转换,通常的处理方式会破坏原有页面的视觉效果,如背景图片和颜色, 字体颜色等在客户端呈现时会显得单调乏味,降低了用户体验。2、传输效率低。由于直接将HTML页面转换后传送,客户端及排版引擎服务器端之 间的数据传输流量大,传输效率较低。3、对客户端性能要求高,客户端呈现复杂度高。现有的数据传输方案,要求客户端 有硬件(比如客户端为WAP手机)或软件(客户端安装有WAP浏览器)支持,同时,客户 端也需要承担相应的处理任务,这样并不符合“重服务器端,轻客户端”的架构趋势。为了避免上述缺陷,可采用预定义的数据传输协议来进行数据传输。基于C/S架 构浏览器的数据传输协议是采用C/S架构浏览器开发中最重要的部分之一,它是承接客户 端和服务器端的桥梁,协议定义的好坏与否,直接关系到网络流量的大小以及客户端的呈 现效果,尤其对于资源有限的中低端的客户端来说,数据传输协议的定义,直接关系到用户 使该客户端浏览器的用户体验。因此,如何平衡客户端呈现的复杂度、传输数据量以及交互 性来定义数据传输协议,以实现基于C/S架构浏览器的数据传输方案是一个亟待解决的问 题。

发明内容
本发明实施例所要解决的技术问题在于,提供一种基于C/S架构浏览器的数据传输方法及服务器,能够极大的减少客户端和排版引擎服务器端之间的数据传输流量,提高 传输效率,提高用户体验。为了实现解决上述技术问题,本发明实施例提供了一种基于C/S架构浏览器的数 据传输方法,包括根据客户端的网页访问请求,从网络中获取所请求访问的网页的页面数据,所述 页面数据包括所述网页的源内容和所述网页的图片文件;对所述获取的网页的源内容进行排版处理,并对所述获取的网页的图片文件进行 优化处理;根据预设的二进制传输协议,将所述排版处理后的源内容和所述优化处理后的图 片文件进行二进制数据编码,并将编码后的二进制数据包传输至所述客户端。其中,对所述获取的网页的源内容进行排版处理,包括解析所述网页的源内容,生成DOM (Document Object Model,文档对象模型)树,所 述D0M树包括网页节点以及所述网页节点的属性和数据;对所述D0M树进行布局排版,得到所述网页的渲染树,所述渲染树包括所述网页 节点以及所述网页节点的排版信息,属性和数据;序列化所述网页节点的属性和数据,并将序列化后的所述属性和数据存储于渲染 数据文件中;将所述网页节点的排版信息和所述网页节点的属性和数据的序列化信息存储于 渲染树文件中。其中,所述对所述获取的网页的图片文件进行优化处理,包括过滤所述图片文件中的广告图片信息,修剪所述图片文件的大小,对所述图片文 件进行压缩处理,以及减少所述图片文件颜色数,并将所述图片文件转换为高压缩率存储 格式的图片文件中的任一种或多种。其中,所述从网络中获取所请求访问的网页的页面数据之前,还包括预先设定二进制传输协议;根据客户端的网页访问请求,预先获取与所请求访问的网页相关的外部资源,所 述外部资源包括图片文件和/或网页的源内容。其中,所述网页的源内容包括网页的各种标签,以及各种标签的属性数据;所述 网页节点与所述网页的标签一一对应。相应地,本发明实施例还提供了一种服务器,包括获取单元,用于根据客户端的网页访问请求,从网络中获取所请求访问的网页的 页面数据,所述页面数据包括所述网页的源内容和所述网页的图片文件;排版单元,用于对所述获取单元获取的网页的源内容进行排版处理;图片处理单元,用于对所述获取单元获取的网页的图片文件进行优化处理;编码单元,用于根据预设的二进制传输协议,对所述排版单元排版处理后的源内 容和所述图片处理单元优化处理后的图片文件进行二进制数据编码; 传输单元,用于将所述编码单元编码后的二进制数据包传输至所述客户端。其中,所述排版单元包括解析单元,用于解析所述网页的源内容,生成D0M树,所述D0M树包括网页节点以及所述网页节点的属性和数据;布局排版单元,用于根据所述解析单元解析得到的所述D0M树进行布局排版,得 到所述网页的渲染树,所述渲染树包括所述网页节点以及所述网页节点的排版信息,属性 和数据;序列化单元,用于将所述布局排版单元得到的所述网页节点的属性和数据进行序 列化;第一存储单元,用于将所述序列化单元序列化后的所述属性和数据存储于渲染数 据文件中;第二存储单元,用于将所述布局排版单元得到的所述网页节点的排版信息,和所 述序列化单元对所述网页节点的属性和数据进行序列化的序列化信息存储于渲染树文件 中。其中,所述图片处理单元包括图片过滤单元,用于过滤所述图片文件中的广告图片信息;和/或,图片修剪单元,用于修剪所述图片文件的大小;和/或,图片压缩单元,用于对所述图片文件进行压缩处理;和/或,图片优化单元,用于减少所述图片文件的颜色数据,并将所述图片文件转换为高 压缩率存储格式的图片文件。其中,所述服务器还包括预设单元,用于预先设定二进制传输协议;预取单元,用于根据客户端的网页访问请求,预先获取与所请求访问的网页相关 的外部资源,所述外部资源包括图片文件和/或网页源内容。其中,所述服务器为排版引擎服务器。实施本发明实施例,具有如下有益效果1、通过对网页的源内容进行排版处理,对网页的图片文件进行优化处理,并根据 预设的二进制传输协议,将处理后的源内容与图片文件数据编码为二进制数据包传输,极 大的减少了客户端与排版引擎服务器端之间的数据传输流量,极大的节约了客户端的资源 需求和响应时间,提高了传输效率;2、服务器端对网页的页面数据进行的排版和优化等处理工作,客户端只需要进行 二进制数据包的解析和渲染即可呈现网页页面,降低了客户端的性能要求;3、二进制数据包包含渲染树文件、渲染数据文件以及图片文件,三个文件分别将 网页页面的排版信息、内容数据信息以及图片信息相分离但又相互关联,使客户端易于解 析,降低了客户端的呈现复杂度,提高了客户端与服务器端的交互性;4、采用外部资源预取技术,避免了在获取一个网页的过程中客户端多次请求相关 外部资源,减少交互时间,提高了用户体验。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的服务器的实施例的结构示意图;图2为本发明实施例提供的服务器的排版单元的实施例的结构示意图;图3为本发明实施例提供的HTML网页的布局示意图;图4为本发明实施例提供的渲染树结构示意图;图5为本发明实施例提供的渲染树节点存储顺序示意图;图6为本发明实施例提供的渲染数据节点结构示意图;图7为本发明实施例提供的渲染数据文件中的文本数据节点结构示意图;图8为本发明实施例提供的服务器的图片处理单元的实施例的结构示意图;图9为本发明实施例提供的二进制数据包的结构示意图;图10为本发明实施例提供的基于C/S架构浏览器的数据传输方法的第一实施例 的流程图;图11为本发明实施例提供的基于C/S架构浏览器的数据传输方法的第二实施例 的流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。请参见图1,为本发明实施例提供的服务器的实施例的结构示意图;图1所示的服 务器为排版引擎服务器,或其他页面渲染引擎服务器,包括但不限于Trident排版引擎服 务器,Gecko排版引擎服务器,KHTML排版引擎服务器或WebKit排版引擎服务器等。如图1所示,所述服务器包括获取单元10,排版单元20,图片处理单元30,编码 单元40和传输单元50。所述获取单元10,用于根据客户端的网页访问请求,从网络中获取所请求访问的 网页的页面数据,所述页面数据包括所述网页的源内容和所述网页的图片文件;具体实现中,在C/S架构浏览器中,客户端(比如手机)一般以排版引擎服务器 作为HTTP (Hyper Text Transfer Protocol,超文本传输协议)代理服务器,客户端向排版 引擎服务器发送网页访问请求,即URL(Uniform/UniversalResource Locator,统一资源定 位符/网页地址)访问请求,排版引擎服务器向网络服务器转发该请求,所述排版引擎服务 器的获取单元10即从网络中获取所请求访问的网页的页面(一般为HTML页面)数据,所 述页面数据包括所述网页的源内容和所述网页的图片文件;所述获取单元10的具体获取 过程为网络服务器向所述获取单元10返回所述URL指定的HTML页面的源内容,所述获取 单元10再根据所述URL访问请求获取该网页的所有图片文件。可以理解的是,所述获取的所请求访问的网页页面并不局限于上述的HTML页面, 还可以为WML页面,甚至可以扩展为自定义的页面,包括标签和属性;此处体现了本发明的 方案的可扩展性。所述排版单元20,用于对所述获取单元10获取的网页的源内容进行排版处理;
具体实现中,所述排版单元20主要用于对所述获取单元10获取的网页的源内容 进行解析、转换、布局排版、数据序列化等一系列处理,务求使复杂的HTML页面简单化。所述图片处理单元30,用于对所述获取单元10获取的网页的图片文件进行优化 处理;具体实现中,所述图片处理单元30对所述获取的网页的图片文件进行优化处理, 包括过滤所述图片文件中的广告图片信息,修剪所述图片文件的大小,对所述图片文件进 行压缩处理,以及减少所述图片文件颜色数,并将所述图片文件转换为高压缩率存储格式 的图片文件中的任一种或多种。所述图片处理单元30对图片文件进行优化处理,提高了图 片文件的传输效率。所述编码单元40,用于根据预设的二进制传输协议,对所述排版单元20排版处理 后的源内容和所述图片处理单元30优化处理后的图片文件进行二进制数据编码;所述传输单元50,用于将所述编码单元40编码后的二进制数据包传输至所述客户端。具体实现中,所述二进制数据包包括渲染树文件、渲染数据文件和图片文件。客 户端接收到该二进制数据包后,只需要解析该数据包,然后根据数据包中的各文件呈现 HTML页面即可。比如客户端解包后,首先从渲染树文件中找到某渲染树节点的排版信息, 包括其在页面的坐标,以及长宽高等信息,根据该节点,从渲染数据文件中找到对应的数据 节点所包含的内容信息,如果其中指示该节点包含图片,则根据数据节点的路径属性等信 息,从相关联的图片文件中取出相应的图片,将该节点重现在页面的相应位置中。再请参见图1,所述服务器还包括预设单元60和预取单元70。所述预设单元60,用于预先设定二进制传输协议;如前所述,由于基于C/S架构浏览器的数据传输协议是采用C/S架构浏览器开发 中最重要的部分之一,它是承接客户端和服务器端的桥梁,协议定义的好坏与否,直接关系 到网络流量的大小以及客户端的呈现效果,尤其对于资源有限的中低端的客户端来说,数 据传输协议的定义,直接关系到用户使用该客户端浏览器的用户体验。所述预设单元60,即 需要平衡客户端呈现的复杂度、传输数据量以及交互性,预先定义二进制传输协议,所述二 进制传输协议规定了对所传输的数据的二进制编码规则,所述编码单元40根据所述预设 单元60预设的二进制传输协议所规定的二进制编码规则,对待传输的数据进行二进制数 据编码,以形成所述二进制传输协议所支持的二进制数据包。所述预取单元70,用于根据客户端的网页访问请求,预先获取与所请求访问的网 页相关的外部资源,所述外部资源包括图片文件和/或网页源内容。具体实现中,所述预取单元70采用基于外部资源的预取技术,根据客户端的网页 访问请求,预先获取与所请求访问的网页相关的外部资源,避免在获取一个网页的过程中 客户端多次向服务器请求相关外部新源;比如当用户需要访问新浪新闻首页,所述预取 单元70预先获取腾讯新闻首页或其他新闻网站的图片文件或源内容,以避免在获取新浪 新闻首页的过程中客户端多次向服务器请求相关的新闻网页。可以理解的是,此处仅为举 例,所述预取单元70还可预先获取一些热门网站内容,以减少服务器端与客户端的交互时 间。本发明实施例通过对网页的源内容进行排版处理,对网页的图片文件进行优化处
8理,并根据预设的二进制传输协议,将处理后的源内容与图片文件数据编码为二进制数据 包传输,极大的减少了客户端与排版引擎服务器端之间的数据传输流量,极大的节约了客 户端的资源需求和响应时间,提高了传输效率;另外,服务器端对网页的页面数据进行的排 版和优化等处理工作,客户端只需要进行二进制数据包的解析和渲染即可呈现网页页面, 降低了客户端的性能要求;二进制数据包包含渲染树文件、渲染数据文件以及图片文件,三 个文件分别将网页页面的排版信息、内容数据信息以及图片信息相分离但又相互关联,使 客户端易于解析,降低了客户端的呈现复杂度,提高了客户端与服务器端的交互性;进一 步,采用外部资源预取技术,避免了在获取一个网页的过程中客户端多次请求相关外部资 源,减少交互时间,提高了用户体验。为了更清楚的说明本发明,下面将对本发明服务器的排版单元20进行详细介绍。请参见图2,为本发明实施例提供的服务器的排版单元20的实施例的结构示意 图;所述排版单元20包括解析单元201,布局排版单元202,序列化单元203,第一存储单 元204和第二存储单元205。所述解析单元201,用于解析所述网页的源内容,生成D0M树,所述D0M树包括网页 节点以及所述网页节点的属性和数据;具体实现中,所述网页的源内容包括网页的各种标签,以及各种标签的属性 (如该标签的名称,路径等信息)和数据(如该标签所包括的文本内容信息)。所述解 析单元201,解析出所述网页的源内容的各种标签和相应的属性及数据,并将其转换为D0M 树,D0M树将整个页面映射为一个由层次节点组成的树型数据结构,D0M树中的节点由所述 页面的标签转换而来,被称为网页节点,其与所述页面的标签一一对应。所述D0M树包括 网页节点以及所述网页节点的属性(如该网页节点的名称,路径等信息)和数据(如该 网页节点所包括的文本内容信息),可以理解的是,此处的网页节点可称为D0M树节点。所述布局排版单元202,用于根据所述解析单元201解析得到的所述D0M树进行布 局排版,得到所述网页的渲染树,所述渲染树包括所述网页节点以及所述网页节点的排版 信息,属性和数据;具体实现中,所述布局排版单元202为所述解析单元201解析生成的D0M树添加 位置、坐标等页面排版信息,即为所述D0M树中的各节点添加了排版信息,生成所述网页的 渲染树,所述渲染树采用类似于D0M树的树型结构。由于所述渲染树在D0M树的基础上加 入了排版信息,因此,所述渲染树包括所述网页节点以及所述网页节点的排版信息(如该 节点的坐标及宽高等信息),属性和数据;所述渲染树节点与所述D0M树节点一一对应,即 与所述页面的标签一一对应。具体实现中,请参见图3,为本发明实施例提供的HTML网页的布局示意图;所述 HTML网页经所述解析单元201和所述布局排版单元202处理后,生成了图4所示的渲染树。 具体可参见图4,为本发明实施例提供的渲染树结构示意图;渲染树是一个与客户端实现 相独立的树结构。所述序列化单元203,用于将所述布局排版单元202得到的所述网页节点的属性 和数据进行序列化;具体实现中,所述序列化单元203主要用于将网页节点的属性和数据进行排序处 理,使之序列化。
所述第一存储单元204,用于将所述序列化单元203序列化后的所述属性和数据 存储于渲染数据文件中;具体实现中,所述渲染数据文件中保存了序列化的各个网页节点的属性和数据, 如前述D0M树中的网页节点又可称为D0M树节点,所述渲染数据文件中的网页节点可称为 渲染数据节点,所述渲染数据文件包括渲染数据节点,以及所述渲染数据节点的属性和数 据。所述第二存储单元205,用于将所述布局排版单元202得到的所述网页节点的排 版信息,以及所述序列化单元203对所述网页节点的属性和数据进行序列化的序列化信息 存储于渲染树文件中。如前述,所述渲染树文件中的网页节点可称为渲染树节点,所述渲染树文件包括 渲染树节点,以及所述渲染树节点的排版信息和所述渲染树节点的属性和数据的序列化信
肩、o具体地,所述渲染树文件采用渲染树的树型结构,按照广度优先对各节点进行存 储,请参见图5,为本发明实施例提供的渲染树节点存储顺序示意图;图5所示的渲染树结 构中,渲染树节点的存储顺序为(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)。其中,(3) (5) (6) (7) (9) (10) (11)为叶子节点。具体实现中,所述渲染数据文件保存了序列化的网页节点的属性和数据,所述渲 染树文件中保存了网页节点的排版信息和所述网页节点的属性和数据的序列化信息。因 此,渲染数据文件中的每个渲染数据节点对应于渲染树文件中的一个渲染树节点。比如渲 染树文件中描述了一个Text (文本)节点的坐标、长宽和父子节点位置等信息,而该Text 节点的文本内容、字体、编码、文本颜色等属性都记录在渲染数据文件的一个对应节点中。请参见图6,为本发明实施例提供的渲染数据节点结构示意图;具体说明如下(1)长度[Length] 32位无符号整数,表示整个数据节点的长度(单位字节)。 如果节点的数据部分长度为0,在渲染树文件中节点数据指针[Data Offset]设置为_1,表 示不需要客户端绘制该节点或者按照默认参数绘制该节点。(2)数据节点内容[Node Data]分为必需属性数据[Required Data]和可选属性 数据[Optional Data]两部分,[Required Data]数据放在[Optional Data]的前面,并且 属性的存储顺序是固定的,[Optional Data]数据放在后面,用属性标识Attr值来区别是 哪一个属性,所以顺序可以是不固定的。(3)必需属性数据[Required Data]由若干按固定顺序排列的数据[Data]组成。(4)可选属性数据[Optional Data]由若干个成对出现的属性标识[Attr] +数据 [Data]组成。(5)属性标识[Attr] 8位无符号整数。(6)数据[Data]不定长字节块二进制数据,表示文字、整数等属性值,比较特殊 一点是如果[Data]是字符串数据,那么[Data]将由两部分构成。[Data] [String Length] + [String];[String Length] 32位无符号整数,表示字符串的长度,以字节为单位;[String] Unicode (统一码)编码的字符串字节块。下面以Text数据节点为例,来说明本发明实施例提供的渲染数据文件的结构。
请参见图7,为本发明实施例提供的渲染数据文件中的文本数据节点结构示意图; 假设该Text数据节点的字体为斜体和粗体,颜色为红色,其二进制编码为[1A 00 00 00 08 00 00 00 41 00 42 00 43 00 44 00 02 05 00 00 00 03 FF 00 0000]。图 7 的具体 说明如下[26]表示该Text数据节点共有27个字节。由于文本属性是Text数据节点的必 需属性,所以放在前面,而文本是字符串数据,所以[8]代表字符串有8个字节,而[ABCD] 则是文本字符串(采用统一码Unicode编码)。[2]表示字体属性,值为[5]表示字体是斜体和粗体。[3]表示文本颜色属性,值为[255]表示为红色。综上,该Text数据节点共有一个必需属性数据,两个可选属性数据。本发明实施例能够极大的减少客户端和排版引擎服务器端之间的数据传输流量, 提高传输效率,提高用户体验。为了更清楚的说明本发明,下面将对本发明服务器的图片处理单元30进行详细 介绍。请参见图8,为本发明实施例提供的服务器的图片处理单元30的实施例的结构示 意图;所述图片处理单元30包括图片过滤单元301,图片修剪单元302,图片压缩单元303 和图片优化单元304。所述图片过滤单元301,用于过滤所述图片文件中的广告图片信息;和/或,所述图片修剪单元302,用于修剪所述图片文件的大小;和/或,所述图片压缩单元303,用于对所述图片文件进行压缩处理;和/或,所述图片优化单元304,用于减少所述图片文件的颜色数据,并将所述图片文件转 换为高压缩率存储格式的图片文件;具体实现中,所述图片优化单元304对于较低质量的 图片具有很好的优化效果。本发明实施例能够极大的减少客户端和排版引擎服务器端之间的数据传输流量, 提高传输效率,提高用户体验。为了更清楚的说明本发明,下面将对所述编码单元40的具体编码过程进行详细 介绍。经过图2所示的排版单元20的上述解析、布局排版、序列化以及存储处理后得到 的渲染树文件,在传输过程中,该渲染树文件需要经过所述编码单元40进行二进制数据编 码,具体实现中,所述编码单元40可根据预设的二进制传输协议,按照预定义的编码规则 对所述渲染树文件进行编码,其编码后的渲染树节点存储结构如下表一所示表一渲染树节点存储结构 渲染树节点的属性和数据等内容信息均保存在渲染数据文件中,上述表一中的 Data Offset即为该渲染树节点的内容信息在渲染数据文件中的偏移。不同类型的渲染树 节点有不同的内容信息,也就对应有不同的渲染数据节点结构,并且数据节点的大小是可 变的。同理,经过图2所示的排版单元20处理后得到的渲染数据文件,在传输过程中,该 渲染数据文件需要经过所述编码单元40进行二进制数据编码,具体实现中,所述编码单元 40可根据预设的二进制传输协议,按照预定义的编码规则对所述渲染数据文件进行编码, 其编码后的渲染数据节点存储结构如下表二所示表二 渲染数据节点存储结构 所述渲染数据文件中,对于每一种类型的渲染数据节点可以有很多属性和数据, 其中有些属性和数据是客户端显示所必须的(如图6中所示的必须属性数据),而有些属性 和数据则不是显示所必须的(如图6所示的可选属性数据),如前述对于Text文本节点,有文本内容,字体、编码、文本颜色等多种属性,但只有文本内容和编码是显示必不可少的, 其它属性客户端可以用默认值替代,因此,排版引擎服务器端在传输过程中,并不一定会向 客户端传送一个渲染数据节点的所有属性,或者说,传送的属性个数是变化的,比如图7 所示的Text数据节点,排版引擎服务器端可仅传输该节点的必需属性数据,也可以传输必 需属性数据和其中一个可选属性数据,或将全部的属性数据传送给客户端,具体地,排版引 擎服务器可根据实际对传输的效率要求和数据传输流量要求确定传送的属性个数。进一步,所述编码单元40会将所述图片处理单元30优化处理后的图片文件、二进 制编码后的渲染树文件和渲染数据文件一起压缩打包,生成最终的二进制数据包,交由所 述传输单元50传输至客户端。具体地,请参见图9,为本发明实施例提供的二进制数据包的结构示意图;如图9 所示,所述二进制数据包包括渲染树文件、渲染数据文件和图片文件。客户端接收到该二 进制数据包后,只需要解析该数据包,然后根据数据包中的各文件呈现HTML页面即可。比 如客户端解包后,首先从渲染树文件中找到某渲染树节点的排版信息,包括其在页面的坐 标,以及长宽高等信息,根据该节点,从渲染数据文件中找到对应的数据节点所包含的内容 信息,如果其中指示该节点包含图片,则从相关联的图片文件中取出相应的图片,将该节点 重现在页面的相应位置中。本发明实施例通过服务器端对网页的页面数据进行的排版和优化等处理工作,客 户端只需要进行二进制数据包的解析和渲染即可呈现网页页面,降低了客户端的性能要 求;二进制数据包包含渲染树文件、渲染数据文件以及图片文件,三个文件分别将网页页面 的排版信息、内容数据信息以及图片信息相分离但又相互关联,使客户端易于解析,降低了 客户端的呈现复杂度,提高了客户端与服务器端的交互性;进一步,采用外部资源预取技 术,避免了在获取一个网页的过程中客户端多次请求相关外部资源,减少交互时间,提高了 用户体验。为了更清楚的说明本发明,下面将对本发明的服务器所执行的基于C/S架构浏览 器的数据传输方法进行详细介绍。请参见图10,为本发明实施例提供的基于C/S架构浏览器的数据传输方法的第一 实施例的流程图;所述方法包括S101,根据客户端的网页访问请求,从网络中获取所请求访问的网页的页面数据, 所述页面数据包括所述网页的源内容和所述网页的图片文件;具体实现中,在C/S架构浏览器中,客户端(比如手机)一般以排版引擎服务器 作为HTTP代理服务器,客户端向排版引擎服务器发送网页访问请求,即URL访问请求,排版 引擎服务器向网络服务器转发该请求,排版引擎服务器在所述S101中,从网络中获取所请 求访问的网页的页面(一般为HTML页面)数据,所述页面数据包括所述网页的源内容和 所述网页的图片文件;所述S101的具体获取过程为网络服务器向排版引擎服务器返回所 述URL指定的HTML页面的源内容,所述S101再根据所述URL访问请求获取该网页的所有 图片文件。可以理解的是,所述S101获取的所请求访问的网页页面并不局限于上述的HTML 页面,还可以为WML页面,甚至可以扩展为自定义的页面,包括标签和属性;此处体现了本 发明的方案的可扩展性。
S102,对所述获取的网页的源内容进行排版处理;具体实现中,所述S102主要用于对所述S101获取的网页的源内容进行解析、转 换、布局排版、数据序列化等一系列处理,务求使复杂的HTML页面简单化。S103,对所述获取的网页的图片文件进行优化处理;具体实现中,所述S103对所述获取的网页的图片文件进行优化处理,包括过滤 所述图片文件中的广告图片信息,修剪所述图片文件的大小,对所述图片文件进行压缩处 理,以及减少所述图片文件颜色数,并将所述图片文件转换为高压缩率存储格式的图片文 件中的任一种或多种。所述S103对图片文件进行优化处理,提高了图片文件的传输效率。S104,根据预设的二进制传输协议,将所述排版处理后的源内容和所述优化处理 后的图片文件进行二进制数据编码;S105,将编码后的二进制数据包传输至所述客户端。具体实现中,所述二进制数据包包括渲染树文件、渲染数据文件和图片文件。客 户端接收到该二进制数据包后,只需要解析该数据包,然后根据数据包中的各文件呈现 HTML页面即可。比如客户端解包后,首先从渲染树文件中找到某渲染树节点的排版信息, 包括其在页面的坐标,以及长宽高等信息,根据该节点,从渲染数据文件中找到对应的数据 节点所包含的内容信息,如果其中指示该节点包含图片,则从相关联的图片文件中取出相 应的图片,将该节点重现在页面的相应位置中。本发明实施例能够极大的减少客户端和排版引擎服务器端之间的数据传输流量, 提高传输效率,提高用户体验。请参见图11,为本发明实施例提供的基于C/S架构浏览器的数据传输方法的第二 实施例的流程图。所述方法包括S201,预先设定二进制传输协议;如前所述,由于基于C/S架构浏览器的数据传输协议是采用C/S架构浏览器开发 中最重要的部分之一,它是承接客户端和服务器端的桥梁,协议定义的好坏与否,直接关系 到网络流量的大小以及客户端的呈现效果,尤其对于资源有限的中低端的客户端来说,数 据传输协议的定义,直接关系到用户使该客户端浏览器的用户体验。所述S201需要平衡客 户端呈现的复杂度、传输数据量以及交互性,预先定义二进制传输协议,所述二进制传输协 议规定了对所传输的数据的二进制编码规则。S202,接收客户端的URL访问请求;S203,向网络服务器转发所述访问请求,并获取所请求访问的网页的页面数据;S204,解析所述获取的网页的源内容,生成D0M树,所述D0M树包括网页节点以及 所述网页节点的属性和数据;具体实现中,所述网页的源内容包括网页的各种标签,以及各种标签的属性 (如该标签的名称,路径等信息)和数据(如该标签所包括的文本内容信息)。所述S204, 解析出所述网页的源内容的各种标签和相应的属性及数据,并将其转换为D0M树,D0M树将 整个页面映射为一个由层次节点组成的树型数据结构,D0M树中的节点由所述页面的标签 转换而来,被称为网页节点,其与所述页面的标签一一对应。所述D0M树包括网页节点以 及所述网页节点的属性(如该网页节点的名称,路径等信息)和数据(如该网页节点所 包括的文本内容信息),可以理解的是,此处的网页节点可称为D0M树节点。
S205,对所述D0M树进行布局排版,得到所述网页的渲染树,所述渲染树包括所述 网页节点以及所述网页节点的排版信息,属性和数据;具体实现中,所述布局排版单元202为所述解析单元201解析生成的D0M树添加 位置、坐标等页面排版信息,即为所述D0M树中的各节点添加了排版信息,生成所述网页的 渲染树,所述渲染树采用类似于D0M树的树型结构。由于所述渲染树在D0M树的基础上加入 了排版信息,因此,所述渲染树包括所述多个网页节点以及所述网页节点的排版信息(如 该节点的坐标及宽高等信息),属性和数据;所述渲染树节点与所述D0M树节点一一对应, 即与所述页面的标签一一对应。具体实现中,图3为一般所获取的HTML网页的布局,图4为经所述S204和S205 处理后得到的渲染树结构。S206,序列化所述网页节点的属性和数据,并将序列化后的所述属性和数据存储 于渲染数据文件中;具体实现中,所述S206将网页节点的属性和数据进行排序,使之序列化,并将序 列化的所述属性和数据存储于所述渲染数据文件中,如前述D0M树中的网页节点又可称 为D0M树节点,所述渲染数据文件中的网页节点可称为渲染数据节点,所述渲染数据文件 包括渲染数据节点,以及所述渲染数据节点的属性和数据。S207,将所述网页节点的排版信息和所述网页节点的属性和数据的序列化信息存 储于渲染树文件中;如前述,所述渲染树文件中的网页节点可称为渲染树节点,所述渲染树文件包括 渲染树节点,以及所述渲染树节点的排版信息和所述渲染树节点的属性和数据的序列化信
肩、o具体地,所述渲染树文件采用渲染树的树型结构,按照广度优先对各节点进行存 储,请参见图5,为本发明实施例提供的渲染树节点存储顺序示意图;图5所示的渲染树结 构中,渲染树节点的存储顺序为(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)。其中,(3) (5) (6) (7) (9) (10) (11)为叶子节点。具体实现中,所述渲染数据文件保存了序列化的网页节点的属性和数据,所述渲 染树文件中保存了网页节点的排版信息和所述网页节点的属性和数据的序列化信息。因 此,渲染数据文件中的每个渲染数据节点对应于渲染树文件中的一个渲染树节点。比如渲 染树文件中描述了一个Text (文本)节点的坐标、长宽和父子节点位置等信息,而该渲染树 节点的文本内容、字体、编码、文本颜色等属性都记录在渲染数据文件的一个对应节点中。 图6示出了渲染数据节点的结构,相应地,图7举例说明了渲染数据文件中的Text数据节 点的结构,具体说明在此不赘述。S208,对所述获取的图片文件进行优化处理;S209,将渲染树文件、渲染数据文件和优化处理后的图片文件进行二进制数据编 码;具体实现中,所述S204至所述S207处理得到的渲染树文件,在传输过程中,需要 经S209根据所述S201预设的二进制传输协议对该渲染树文件进行二进制数据编码,其编 码后渲染树节点的结构如上表一所示,在此不赘述。同理,所述S204至所述S207处理得到的渲染数据文件,在传输过程中,需要经S209根据所述S201预设的二进制传输协议对该渲染数据文件进行二进制数据编码,其编 码后的渲染数据节点结构如上表二所示,进一步,所述S209会将所述S208优化处理后的图片文件、以及二进制编码后的渲 染树文件和渲染数据文件一起压缩打包,生成最终的二进制数据包;具体地,可参见图9, 为该二进制数据包的结构示意图。S210,将所述编码后的二进制数据包传输至客户端。本发明实施例能够极大的减少客户端和排版引擎服务器端之间的数据传输流量, 提高传输效率,提高用户体验。通过上述各实施例的描述,本发明实施例通过对网页的源内容进行排版处理,对 网页的图片文件进行优化处理,并根据预设的二进制传输协议,将处理后的源内容与图片 文件数据编码为二进制数据包传输,极大的减少了客户端与排版引擎服务器端之间的数据 传输流量,极大的节约了客户端的资源需求和响应时间,提高了传输效率;另外,服务器端 对网页的页面数据进行的排版和优化等处理工作,客户端只需要进行二进制数据包的解析 和渲染即可呈现网页页面,降低了客户端的性能要求;二进制数据包包含渲染树文件、渲染 数据文件以及图片文件,三个文件分别将网页页面的排版信息、内容数据信息以及图片信 息相分离但又相互关联,使客户端易于解析,降低了客户端的呈现复杂度,提高了客户端与 服务器端的交互性;进一步,采用外部资源预取技术,避免了在获取一个网页的过程中客户 端多次请求相关外部资源,减少交互时间,提高了用户体验。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权 利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权 利要求所作的等同变化,仍属于发明所涵盖的范围。
权利要求
一种基于C/S架构浏览器的数据传输方法,其特征在于,包括根据客户端的网页访问请求,从网络中获取所请求访问的网页的页面数据,所述页面数据包括所述网页的源内容和所述网页的图片文件;对所述获取的网页的源内容进行排版处理,并对所述获取的网页的图片文件进行优化处理;根据预设的二进制传输协议,将所述排版处理后的源内容和所述优化处理后的图片文件进行二进制数据编码,并将编码后的二进制数据包传输至所述客户端。
2.如权利要求1所述的方法,其特征在于,对所述获取的网页的源内容进行排版处理, 包括解析所述网页的源内容,生成文档对象模型D0M树,所述D0M树包括网页节点以及所述 网页节点的属性和数据;对所述D0M树进行布局排版,得到所述网页的渲染树,所述渲染树包括所述网页节点 以及所述网页节点的排版信息,属性和数据;序列化所述网页节点的属性和数据,并将序列化后的所述属性和数据存储于渲染数据 文件中;将所述网页节点的排版信息和所述网页节点的属性和数据的序列化信息存储于渲染 树文件中。
3.如权利要求2所述的方法,其特征在于,所述对所述获取的网页的图片文件进行优 化处理,包括过滤所述图片文件中的广告图片信息,修剪所述图片文件的大小,对所述图片文件进 行压缩处理,以及减少所述图片文件颜色数,并将所述图片文件转换为高压缩率存储格式 的图片文件中的任一种或多种。
4.如权利要求1-3任一项所述的方法,其特征在于,所述从网络中获取所请求访问的 网页的页面数据之前,还包括预先设定二进制传输协议;根据客户端的网页访问请求,预先获取与所请求访问的网页相关的外部资源,所述外 部资源包括图片文件和/或网页的源内容。
5.如权利要求4所述的方法,其特征在于所述网页的源内容包括网页的各种标签,以及各种标签的属性和数据; 所述网页节点与所述网页的标签一一对应。
6.一种服务器,其特征在于,包括获取单元,用于根据客户端的网页访问请求,从网络中获取所请求访问的网页的页面 数据,所述页面数据包括所述网页的源内容和所述网页的图片文件; 排版单元,用于对所述获取单元获取的网页的源内容进行排版处理; 图片处理单元,用于对所述获取单元获取的网页的图片文件进行优化处理; 编码单元,用于根据预设的二进制传输协议,对所述排版单元排版处理后的源内容和 所述图片处理单元优化处理后的图片文件进行二进制数据编码;传输单元,用于将所述编码单元编码后的二进制数据包传输至所述客户端。
7.如权利要求6所述的服务器,其特征在于,所述排版单元包括解析单元,用于解析所述网页的源内容,生成D0M树,所述D0M树包括网页节点以及所 述网页节点的属性和数据;布局排版单元,用于根据所述解析单元解析得到的所述D0M树进行布局排版,得到所 述网页的渲染树,所述渲染树包括所述网页节点以及所述网页节点的排版信息,属性和数 据;序列化单元,用于将所述布局排版单元得到的所述网页节点的属性和数据进行序列化;第一存储单元,用于将所述序列化单元序列化后的所述属性和数据存储于渲染数据文 件中;第二存储单元,用于将所述布局排版单元得到的所述网页节点的排版信息,和所述序 列化单元对所述网页节点的属性和数据进行序列化的序列化信息存储于渲染树文件中。
8.如权利要求7所述的服务器,其特征在于,所述图片处理单元包括 图片过滤单元,用于过滤所述图片文件中的广告图片信息;和/或, 图片修剪单元,用于修剪所述图片文件的大小;和/或,图片压缩单元,用于对所述图片文件进行压缩处理;和/或,图片优化单元,用于减少所述图片文件的颜色数据,并将所述图片文件转换为高压缩 率存储格式的图片文件。
9.如权利要求8所述的服务器,其特征在于,还包括 预设单元,用于预先设定二进制传输协议;预取单元,用于根据客户端的网页访问请求,预先获取与所请求访问的网页相关的外 部资源,所述外部资源包括图片文件和/或网页源内容。
10.如权利要求6-9任一项所述的服务器,其特征在于 所述服务器为排版引擎服务器。
全文摘要
本发明实施例公开了一种基于C/S架构浏览器的数据传输方法,包括根据客户端的网页访问请求,从网络中获取所请求访问的网页的页面数据,所述页面数据包括所述网页的源内容和所述网页的图片文件;对所述获取的网页的源内容进行排版处理,并对所述获取的网页的图片文件进行优化处理;根据预设的二进制传输协议,将所述排版处理后的源内容和所述优化处理后的图片文件进行二进制数据编码,并将编码后的二进制数据包传输至所述客户端。相应地,本发明实施例还公开了一种服务器。采用本发明,能够极大的减少客户端和排版引擎服务器端之间的数据传输流量,提高传输效率,提高用户体验。
文档编号G06F17/30GK101860533SQ20101018423
公开日2010年10月13日 申请日期2010年5月26日 优先权日2010年5月26日
发明者余恒兵, 李成亮, 杨木祥, 祁晓龙, 章国良 申请人:卓望数码技术(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1