浏览器简单流程

浏览器简单流程

下面以tcp连接为例简单介绍浏览器的流程。

1)  接入互联网,很多情况下,终端都是一直在线了,所以这部可以省略。但是像GPRS这样的承载,都是在进入浏览器的时候才打开gprs通道。

2)  用户输入url

3)  浏览器对url进行dns解析,由于dns解析可能涉及到网络或者文件操作,所以dns解析式异步的。

4)  dns解析到ip地址后,浏览器调用socket去连接远端服务器(如果是使用了HTTP Proxy,则这个时候连接的是Proxy地址),因为是tcp连接,需要做三次握手,所以也是异步的。

5)  浏览器在调用连接的接口后,会轮询套接字,如果套接字收到了连接成功的消息(或者,在某些套接字设计中,是可写消息),就调用套接字的发送接口来发送HTTP请求数据。

6)  发送请求的过程也是一个异步的过程,而且非常有可能不能一次性发完,这个时候会不停地轮询套接字,检测可写消息。

7)  发送完请求数据后,就等待响应。知道套接字有了可读消息,HTTP就去收数据,数据一般多次才能收齐。HTTP1.1通过content-length头部或者chunked机制来判断什么时候收起数据,而1.0则通过对端关闭来判断。

8)  收齐数据后,HTTP解析响应,有选择性地对体部数据进行解码(如果存在编码),将解码后的数据传给解析模块进行解析。当然,好的浏览器,能够做到边收数据边解析。

9)  解析标记语言,形成解析数据结构和DOM树。如果页面中含有嵌入子媒体对象(如图片,外部CSS,背景音,其它对象),则发起HTTP请求,请求对应数据。

10)              对网页进行排版(如果有CSS,要根据CSS规则进行排版)

11)              渲染网页

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值