- 博客(15)
- 收藏
- 关注
原创 WebKit内核源代码分析(三)
摘要:浏览器的请求一般是以页面请求为单位,当用户通过网址栏输入一个url,浏览器就开始一个页面请求。而一个页面请求可能包含有一到多个页面子帧,以及图片、CSS和插件等派生子资源。Page类就是用来对应这样的页面请求。Page类是WebKit中非常重要的一个类,它就像内核对外的一个聚合器。关键词:WebKit内核源代码,WebCore,Page,Frame,WebKit架构1. 概...
2011-03-16 02:02:31
300
原创 WebKit内核源代码分析(二)
摘要:本系列通过分析WebKit的源代码,试图分析WebKit的内核设计架构,模块之间的关系,分析的时候以Qt的移植为参考,涉及移植的东西不多,主要还是以内核为主。FrameLoader类负责一个Frame的加载,在Frame的流程中起到非常重要的重要,同很多组件都有交互,本文将分析FrameLoader类的代码。1. 概述 顾名思义,FrameLoader是一个Frame的lo...
2011-03-16 01:58:02
320
原创 WebKit内核源码分析
要:本系列通过分析WebKit的源代码,试图分析WebKit的内核设计架构,模块之间的关系,分析的时候以Qt的移植为参考,涉及移植的东西不多,主要还是以内核为主。在分析内核的时候,Frame是首当其冲的一个类,本文将分析Frame类的代码。1. 描述Frame类是WebCore内核同应用之间联系的一个重要的类。它有点像设计模式中的Façade,将内核的各个不同的零配件组装在了一起...
2011-03-16 01:56:24
217
原创 HTML5设计原理
今天我想跟大家谈一谈HTML5的设计。主要分两个方面:一方面,当然了,就是HTML5。我可以站在这儿只讲HTML5,但我并不打算这样做,因为如果你想了解HTML5的话,你可以Google,可以看书,甚至可以看规范。实际上,确实有人会谈到规范的内容。史蒂夫·福克纳(Steve Faulkner)会讲HTML5与可访问性。而保罗·艾里什(Paul Irish)则会讲HTML5提供的各种API。...
2011-03-16 01:54:49
147
原创 HTML设计原理
文章一开始就深刻吸引了我,一直以来,我都认为xml是一个好东西,它很严谨,对客户端开发人员来说,xml的解析简单,理解容易,同时又给人定义元素和属性的自由,非常容易同业务层结合起来,可以比较容易地定出一个技术规范来,所以它是CS模型里面server端设计经常采用的一种方式(另外一种是 jason)。我甚至一度认为,http+xml可能是手机上最好的体验,cs模型可能是手机未来的主流。爱屋及...
2011-03-16 01:52:10
282
原创 html解析模型
[img]http://dl.iteye.com/upload/attachment/437200/f3f78028-3015-3b40-ac0b-5eb9cb411413.png[/img] 如上是html解析模型图,如图所示,html解析模型的输入是unicode字符流,经过tokenization和tree construction两个阶段,输出Document对象。...
2011-03-16 01:48:40
259
原创 WebKit中的html词法解析
语言的解析一般分为词法分析(lexical analysis)和语法分析(Syntax analysis)两个阶段,WebKit中的html解析也不例外,本文主要讨论词法分析。词法分析的任务是对输入字节流进行逐字扫描,根据构词规则识别单词和符号,分词。在WebKit中,有两个类,同词法分析密切相关,它是HTMLToken和HTMLTokenizer类,可以简单将HTMLToken类...
2011-03-16 01:47:10
209
原创 WebKit加载网页的流程
在WebKit渲染一个页面之前,它需要从网络上(其实也可以从本地文件或者内存加载)加载页面以及和它相关的所有派生资源。同加载资源相关的层有很多,在本文中,我将聚焦于解释WebCore,这一WebKit的主要渲染模块,如何参与到加载过程中的。WebKit有两条加载路线,一条是加载documents到frames里面,另一条是加载派生资源(比如图片和脚本)。下图总结出了这两条路线涉及到的主要对...
2011-03-16 01:45:47
179
原创 WebCore中的http响应信息维护
在“WebCore中的http请求信息维护”中,我们曾经简单介绍过http的原理,并分析了WebCore中对请求信息的维护,这篇文章则分析WebCore对http响应信息的维护。1. 作用ResourceResponse负责维护服务器返回的http响应的信息,包括http的头部、体部及其它信息。2. ResourceResponse类分析ResourceResponse继承...
2011-03-16 01:44:40
132
原创 WebCore中的http请求信息维护
WebCore内核本身并不实现http协议,它通过调用不同平台的http库,比如Qt的QnetWorkRequest,gtk的soup,或者curl等,来实现http协议的功能。这里将以curl为例,来理解webcore中的请求信息维护。 http协议的细节,如果希望深入了解的话,可以参考rfc2616,rfc2617。简单介绍下它的原理,http协议遵循的是一个请求à响应的机制...
2011-03-16 01:42:16
194
原创 浏览器背景知识
1.1 网络接入浏览器是用来上网的,这个很好理解,除了离线浏览,大部分的行为就是用来跟各种服务器做交互,而交互的第一个前提就是网络接入。一个简单的例子就是PC通过modem拨号上网,当你拨号成功以后,你就会获得一个ip地址,可以同网络上的其它ip进行通讯,这就是接入了,当你不上网的时候,你会挂断。因为用户需要接入,就诞生了ISP(Internet Service Provi...
2011-03-16 01:33:48
497
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人