在移动终端上实现网页浏览的方法和系统 【技术领域】
本发明涉及网络通信技术领域, 尤其是涉及在移动终端上实现网页浏览的方法和系统。 背景技术 近年来, 随着移动互联网的发展, 用户在移动终端上浏览互联网内容的数量已经 超过通过个人电脑访问互联网内容的数量。
为了能够在各种移动终端上实现网页浏览, 现有方案提供了多种浏览器, 这些浏 览器运行在移动终端上, 解析从网络中获取到的网页内容, 进行页面渲染, 并最终将绘制 好的界面在移动终端上显示。参见图 1, 显示了现有移动终端浏览器的服务架构示意图。 当终端上运行的浏览器为无线应用协议 (Wireless Application Protocol, WAP) 浏览器 时, 架构中的服务器端可以将网络中的非 WAP 内容转换为 Wap 1.0 协议的无线标记语言 (Wireless Markup Language, WML) 发送给终端, 从而使用户能够访问各种网页。
然而, 上述现有的处理方案也存在不少不足之处, 例如, 现有方案中, 当从移动网 络下载到相应网页内容后, 所有浏览器的功能都需要在移动终端上执行。虽然目前移动终 端的类型较多, 但大部分移动终端的运算能力远远低于个人电脑, 现有移动网络的无线访 问速率也远远慢于个人电脑所使用的有线宽带速率, 且移动网络的收费相比也是较高的。 现有的处理方案, 终端侧的负担较重, 对终端的要求较高, 提高了设备的成本, 而所能提供 的业务质量又远不能达到个人电脑上的效果。
如何在低性能的移动终端上, 通过缓慢的无线网络, 用较少的流量代价实现近似 个人电脑访问互联网的体验, 是目前无线互联网技术的一个重要研究方向。
发明内容 本发明实施例提供了一种在移动终端上实现网页浏览的方法和系统, 能够在低性 能的移动终端上, 通过缓慢的无线网络, 用较少的流量代价实现近似个人电脑访问互联网 的体验。
为达到上述目的, 本发明实施例的技术方案是这样实现的 :
本发明实施例提供了一种在移动终端上实现网页浏览的方法, 该方法包括 :
接收代理服务器转发的来自移动终端的访问请求 ;
利用所述访问请求获取页面文件和层叠样式表 CSS 文件, 并根据该页面文件和 CSS 文件得到页面渲染的输出内容 ;
对所述页面渲染的输出内容进行压缩, 并将压缩数据通过代理服务器发送至移动 终端, 以在移动终端上进行网页的显示。
本发明实施例还提供了一种在移动终端上实现网页浏览的方法, 包括 :
通过代理服务器向核心服务器发送访问请求 ;
接收代理服务器转发的来自核心服务器的压缩数据, 所述压缩数据是对所述访问
请求所对应的网页的页面渲染的输出内容压缩得到的 ;
对所述压缩数据进行解压缩, 并根据解压缩后得到的页面渲染的输出内容进行页 面绘制 ;
将绘制完成的页面在屏幕上进行显示。
本发明实施例还提供了一种在移动终端上实现网页浏览的系统, 该系统包括移动 终端、 代理服务器和核心服务器,
所述移动终端, 向代理服务器发送访问请求 ; 以及, 接收所述访问请求所对应的压 缩数据, 对所述压缩数据进行解压缩, 并根据解压缩后得到的页面渲染的输出内容进行页 面绘制, 将绘制完成的页面在屏幕上进行显示 ;
所述代理服务器, 将接收到的所述访问请求发送至相应的核心服务器 ; 以及, 将接 收到的压缩数据发送移动终端 ;
所述核心服务器, 利用所述访问请求获取页面文件和层叠样式表 CSS 文件, 并根 据该页面文件和 CSS 文件得到页面渲染的输出内容 ; 对所述页面渲染的输出内容进行压 缩, 并将压缩数据发送至代理服务器。
由上述可见, 本发明实施例的技术方案通过对移动浏览器实现方式的深入分析, 对浏览器功能的实现在客户端和服务器端重新进行了的分工, 将浏览器的大部分功能包括 页面渲染都放在服务器端执行, 建立了一种新型的移动浏览器实现架构。
本技术方案由于客户端仅需具备页面绘制等简单功能, 且这部分功能可以插件的 形式集成在客户端中, 从而显著降低了对客户端性能的要求, 有利于客户端的小型化和便 携化 ; 并且, 由于为移动终端设置了解压缩功能, 服务器端能够对传输的数据进行压缩, 从 而大大降低了网络流量。
本技术方案能够在低性能的移动终端上, 通过缓慢的无线网络, 用较少的流量代 价实现近似个人电脑访问互联网的体验, 具有较广的应用前景。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其他的附图。
图 1 为现有移动终端浏览器的服务架构示意图 ;
图 2 为本发明实施例一中利用核心服务器在移动终端上实现网页浏览的方法的 示意图 ;
图 3 为本发明实施例二中提供的在移动终端上实现网页浏览的方法流程示意图 ;
图 4 为本发明实施例三提供的移动浏览器的基本工作流程示意图 ;
图 5 为本发明实施例三提供的核心服务器工作流程示意图 ;
图 6 为本发明实施例三提供的一种网页节点的解析格式 ;
图 7 为本发明实施例三提供的一种 CSS 解析格式 ;
图 8 为本发明实施例四提供的一种在移动终端上实现网页浏览的系统结构示意图 ;
图 9 为本发明实施例四提供的另一种在移动终端上实现网页浏览的系统结构示
意图。 具体实施方式
下面将结合本发明的附图, 对本发明的技术方案进行清楚、 完整地描述, 显然, 所 描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例, 都属于本 发明保护的范围。
本发明提供了一种在低性能的移动终端上, 通过缓慢的无线网络, 用较少的流量 代价实现近似个人电脑访问互联网的体验的解决方案, 具有较广的应用前景。
本发明实施例一提供了一种在移动终端上实现网页浏览的方法, 该方法可以由网 络侧的核心服务器或其他具有相应功能的设备实现, 参见图 2, 显示了利用核心服务器实现 本方法时的场景, 具体包括 :
21 : 接收代理服务器转发的来自移动终端的访问请求 ;
22 : 利用访问请求获取页面文件和层叠样式表 (Cascading Style Sheet, CSS) 文 件, 并根据该页面文件和 CSS 文件得到页面渲染的输出内容 ; 23 : 对页面渲染的输出内容进行压缩, 并将压缩数据通过代理服务器发送至移动 终端, 以在移动终端上进行网页的显示。
由上述可见, 本发明实施例的技术方案通过对移动浏览器实现方式的深入分析, 对浏览器功能的实现在客户端和服务器端重新进行了的分工, 将浏览器的大部分功能包括 页面渲染都放在服务器端执行, 建立了一种新型的移动浏览器实现架构。
由于为移动终端设置了解压缩功能, 服务器端能够对传输的数据进行压缩, 从而 大大降低了网络流量。
相应于本发明实施例一的方案, 本发明实施例二提供了一种在移动终端上实现网 页浏览的方法, 该方法可以由终端侧的移动终端实现, 如手机等, 参见图 3, 该方法包括 :
31 : 通过代理服务器向核心服务器发送访问请求 ;
32 : 接收代理服务器转发的来自核心服务器的压缩数据, 该压缩数据是对所述访 问请求所对应的网页的页面渲染的输出内容压缩得到的 ;
33 : 对所述压缩数据进行解压缩, 并根据解压缩后得到的页面渲染的输出内容进 行页面绘制 ;
34 : 将绘制完成的页面在屏幕上进行显示。
由上述可见, 本发明实施例的技术方案通过对移动浏览器实现方式的深入分析, 对浏览器功能的实现在客户端和服务器端重新进行了的分工, 将浏览器的大部分功能包括 页面渲染都放在服务器端执行, 建立了一种新型的移动浏览器实现架构。
本技术方案由于客户端仅需具备页面绘制等简单功能, 且这部分功能可以插件的 形式集成在客户端中, 从而显著降低了对客户端性能的要求, 有利于客户端的小型化和便 携化 ; 并且, 由于为移动终端设置了解压缩功能, 服务器端能够对传输的数据进行压缩, 从 而大大降低了网络流量。
下面对本发明实施例三提供的在移动终端上实现网页浏览的方法进行说明。
为了便于清楚地说明本发明实施例的技术方案, 首先结合图 4 对移动浏览器
的基本工作流程进行说明。在图 4 所示场景中, 以获取到的页面文件为文本标记语言 (Hypertext Markup Language, HTML) 文件为例进行说明。由 HTML 格式化 (Parser) 模块 对 HTML 文件进行解析 ; 由 CSS Parser( 即 CSS 格式化 ) 模块对样式表 (Style Sheets), 即 CSS 文件, 进行解析。将解析得到的文档对象模型 (Document Object Model, DOM) 树和样 式规则 (Style Rules) 结合 (Attachment), 并在布局 (Layout) 的基础上对结合的结果进行 渲染 (Render)。对页面渲染的输出结果进行绘制 (Painting), 最后进行显示 (Display)。
本技术方案中仅将图 4 中 Painting 模块和 Display 模块所执行的相应功能放在 移动终端上实现, 而其他功能模块都在网络侧实现。因此, 对客户端的需求非常低, 而且客 户端的体积也会非常小。
参见图 5, 服务器端, 主要是核心服务器所执行的操作具体包括 :
1) : 接收访问请求。
上述访问请求是由代理服务器转发的移动终端的访问请求。
本方案中的服务器端主要由代理服务器和解析服务器组成。 代理服务器执行一种 透传的转发服务, 根据客户端访问请求将数据路由到不同的核心服务器。
2) 异步请求页面。 上述访问请求可以携带移动终端所支持的协议、 请求访问的网址等信息。核心服 务器可以根据访问请求中的网址从外部获取对应的页面文件, 在此, 采用异步请求的方式, 以进一步加快数据获取的速度, 从而提高整体的数据解析速度。
获取到的页面文件的类型可以有多种, 例如 HTML 页面文件或者 WML 页面文件。
3) 格式化页面文件。
HTML Parser 功能对页面文件进行格式化, 得到 DOM 树 (Tree)。
进一步的, 在步骤 3) 之前, 本方案还可以包括 : 根据预定过滤规则对所述页面文 件进行过滤, 所述过滤规则包括所支持的协议和文件冗余信息。 即本方案的一个特点为 : 在 解析网页前, 服务端会根据所支持的协议和文件冗余信息过滤网页内容, 所支持的协议主 要指相应的移动终端所支持的协议, 文件冗余信息主要包括网页中的注释内容、 多余的空 格和脚本语言等。
通过过滤处理, 将不支持的页面文件, 以及网页中的注释内容、 多余的空格和脚本 语言都去掉, 不但能够降低网页内容的长度, 节省传输所需的流量, 而且降低了后续网页解 析过程中的计算量, 进一步加快了解析的速度。
4) 判断页面文件是否为 WML 类型。
根据页面文件的类型, 执行网页节点解析。在图 5 所示的场景中, 以页面文件包括 WML 类型和 HTML 类型为例进行说明。
5) 网页节点解析。
根据页面文件的类型确定所采用的关键节点, 当页面文件的类型为 WML 时, 所采 用的关键节点为卡片 (CARD) 节点, 当页面文件的类型为 HTML 时, 所采用的关键节点为主体 (BODY) 节点 ;
以所述关键节点为起始点, 遍历所述 DOM 树, 对网页节点进行解析, 得到网页节点 的解析结果。例如, 以 BODY 节点为起始节点, 依次经历所有可选节点, 最终再回到 BODY 节 点, 并对可选节点进行解析。
上述可选节点可以为 DOM 树中的所有节点, 或者, 本方案中采用了一种跳过的处 理方式, 在遍历所述 DOM 树时, 对经历的每一个网页节点先判断是否为可支持的网页节点, 若是, 对该网页节点进行解析, 若否, 跳过该网页节点, 不再对该网页节点进行解析。在此, 可支持的网页节点主要指相应移动终端所支持的网页节点。
在解析处理中根据事先制定好的客户端协议, 判断可以解析哪些节点, 那么不需 要解析的节点在解析时就会被丢弃。客户端协议可以有多种, 一个核心服务器上可以对应 支持一种客户端协议, 由代理服务其根据移动终端访问请求中的用户代理 (UserAgent) 信 息, 将访问请求路由转发到具有相应协议的核心服务器。
参见图 6, 显示了本发明实施例提供的一种网页节点的解析格式, 依次包括标签、 索引、 CSS 索引、 后续数据长度、 属性数据和子节点数据。解析格式中的具体内容可以根据 需要进行调整, 例如, 索引、 CSS 索引和属性数据为可选项, 可以省略其中的一项或多项。
标签 : 为一个类型为 short 的字段, 长度 2 个 byte, 也就是 16 个 2 进制位 bit ; 用 最高的 4 位代表标志位, 剩余 12 个 bit 代表节点名称时, 最多可支持 4096 种节点。
索引 : 是一个 short 类型字段, 在标签的标志位中标明是否有本子段。
CSS 索引 : 是一个 short 数组, 因为网页中可能有多个 CSS 来描述一个网页节点, 标签的标志位中标明是否有该字段 ; short 数组中除了最后一个 short 元素, 其余的 short 元素最高位为 1。 后续数据长度 : 是一个 short 类型的字段, 表示该节点所属的后续数据 ( 属性数据 与子节点数据之和的 ) 长度。
属性数据 : 根据标签表示的结点名称, 什么节点有属性数据和属性数据的格式, 可 在起始时确定。
子节点数据 : 包括该节点所有子孙结点的数据。
一个网页节点的示例可以表示如下 :
上述网页节点的解析结果为 39 个 byte 长度的 16 进制数据 : 112, 2, 0, 30, 0, 0, 1, 117, 0, 0, 28, 104.......
其中, 标签= 112, 2 = 0111000000000010, 其高四位表示无索引、 有 CSS、 有子节 点、 后续长度用 short 表示 ; 其低位的 10, 是十进制的 2, 协议中表示 form。
6) 判断 DOM 树的头节点 (HeadNode) 中是否具有 CSS 链接 (Link), 若是, 执行步骤 7, 若否, 执行步骤 8 ;
7) 同步请求 CSS 文件, 执行步骤 9。
这种情况下, 根据头节点中的 CSS 链接获取 CSS 文件。
8) 从头节点中提取 CSS 文件。
即提取头节点中的 Style 节点内容, 作为 CSS 文件。
9)CSS Parser
对获取到的 CSS 文件, 利用 CSS Parser 进行 CSS 格式化, 得到 CSS 列表。
本发明实施例提供的 CSS 解析格式的示例参见图 7, 包括 CSS 索引、 数据长度和数 据。具体内容如下 :
CSS 索引 : 是一个 short 类型的字段, 表示该 CSS 在列表中的序号。
数据长度 : 也是一个 short 类型, 表示数据的长度。
数据 : 是一个由类型和值组成的数组。
本方案中网页节点的解析结果和 CS S 的解析结果都采用二进制流的方式, 如 Byte 数组构成的二进制流。
10) 对 CSS 列表进行解析。
在对 CSS 列表中每一项 CSS 内容解析之前, 先判断该 CSS 内容是否为可支持的 CSS 内容, 若是, 对该 CSS 内容进行解析, 若否, 跳过该项, 不再对该 CSS 内容进行解析, 从而降低 最终得到的网页内容的长度, 节省流量。上述可支持的 CSS 内容主要指相对应的移动终端 所支持的 CSS 内容。
11) 组合。
将网页节点的解析结果和 CSS 的解析结果进行组合, 得到页面渲染的输出内容。
12) 压缩内容。
对得到页面渲染的输出内容进行压缩, 例如, 进行 Zlib 压缩, 从而进一步减少传 输的流量。
13) 将压缩后的数据返回至客户端。
本方案中核心服务器通过代理服务器将压缩后的数据发送至移动终端。
进一步的, 核心服务器还能够根据所述访问请求从业务服务器上获取相应业务数 据, 将该业务数据通过代理服务器转发至移动终端 ; 或者, 所述代理服务器根据访问请求从 业务服务器上获取相应业务数据, 并将该业务数据直接发送至移动终端。 其中, 业务服务器 可以为提供图片服务的服务器、 提供下载服务的服务器或者提供媒体服务的服务器等。移 动终端接收到业务数据后便可以直接对其进行展示。
由上述可见, 本发明实施例的技术方案通过对移动浏览器实现方式的深入分析, 对浏览器功能的实现在客户端和服务器端重新进行了的分工, 将浏览器的大部分功能包括 页面渲染都放在服务器端执行, 建立了一种新型的移动浏览器实现架构。
本技术方案由于客户端仅需具备页面绘制等简单功能, 且这部分功能可以插件的 形式集成在客户端中, 从而显著降低了对客户端性能的要求, 有利于客户端的小型化和便 携化 ; 并且, 由于为移动终端设置了解压缩功能, 服务器端能够对传输的数据进行压缩, 从 而大大降低了网络流量。
本技术方案能够在低性能的移动终端上, 通过缓慢的无线网络, 用较少的流量代 价实现近似个人电脑访问互联网的体验, 具有较广的应用前景。
本发明实施例四还提供了一种在移动终端上实现网页浏览的系统, 参见图 8, 所述 系统包括移动终端 81、 代理服务器 82 和核心服务器 83,
所述移动终端 81, 向代理服务器 82 发送访问请求 ; 以及, 接收该访问请求所对应 的压缩数据, 对所述压缩数据进行解压缩, 并根据解压缩后得到的页面渲染的输出内容进 行页面绘制, 将绘制完成的页面在屏幕上进行显示 ;
所述代理服务器 82, 将接收到的所述访问请求发送至相应的核心服务器 ; 以及,将接收到的压缩数据发送移动终端 81 ;
所述核心服务器 83, 利用所述访问请求获取页面文件和层叠样式表 CSS 文件, 并 根据该页面文件和 CSS 文件得到页面渲染的输出内容 ; 对页面渲染的输出内容进行压缩, 并将压缩数据发送至代理服务器 82。
进一步的, 上述核心服务器 83 包括 :
异步获取单元, 根据所述访问请求采用异步的方式获取页面文件 ;
DOM 树生成单元, 利用获取到的页面文件生成文档对象模型 DOM 树 ;
网页节点解析单元, 对所述 DOM 树中的网页节点进行解析, 得到网页节点的解析 结果 ;
CSS 解析单元, 判断所述 DOM 树的头节点中是否具有 CSS 链接, 若是, 根据该 CSS 链 接获取 CSS 文件, 若否, 从所述头节点中提取 CSS 文件, 并根据获取到的 CSS 文件, 得到 CSS 的解析结果 ;
组合单元, 将网页节点的解析结果和 CSS 的解析结果进行组合, 得到页面渲染的 输出内容。
进一步的, 参见图 9, 上述系统还包括业务服务器, 如业务服务器 1、 业务服务器 2 和业务服务器 3。 所述核心服务器 83, 还能够根据所述访问请求从业务服务器上获取相应业务数 据, 将该业务数据通过代理服务器 82 转发至移动终端 81 ; 或者, 所述代理服务器 82, 根据访 问请求从业务服务器上获取相应业务数据, 并将该业务数据直接发送至移动终端 81。
上述业务服务器可以为提供图片服务的服务器、 提供下载服务的服务器或者提供 媒体服务的服务器。
代理服务器根据访问请求, 如访问请求中的客户端的版本信息, 以及请求内容的 类型等, 将该访问请求路由到不同的核心服务器, 如核心服务器 V 1、 核心服务器 V2 等等, 不同的核心服务器支持使用不同解析协议的客户端。而且, 如图 9 虚线所示, 当核心服务器 接收到一个具体的业务请求时, 如访问图片的请求时, 会把该请求转发到提供图片服务的 业务服务器, 从该业务服务器获取相应业务数据。
本发明系统实施例中各单元和模块的具体工作方式参见本发明方法实施例中的 相关内容。
由上述可见, 本发明实施例的技术方案通过对移动浏览器实现方式的深入分析, 对浏览器功能的实现在客户端和服务器端重新进行了的分工, 将浏览器的大部分功能包括 页面渲染都放在服务器端执行, 建立了一种新型的移动浏览器实现架构。
本技术方案由于客户端仅需具备页面绘制等简单功能, 且这部分功能可以插件的 形式集成在客户端中, 从而显著降低了对客户端性能的要求, 有利于客户端的小型化和便 携化 ; 并且, 由于为移动终端设置了解压缩功能, 服务器端能够对传输的数据进行压缩, 从 而大大降低了网络流量。
本技术方案能够在低性能的移动终端上, 通过缓慢的无线网络, 用较少的流量代 价实现近似个人电脑访问互联网的体验, 具有较广的应用前景。
以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精 神和原则之内, 所做的任何修改、 等同替换、 改进等, 均应包含在本发明保护的范围之内。