浏览器解析过程

面试老被问到的一个问题,个人总结一下,有需要补充和改进的请留言
1、输入地址

首先生成一个http request对象,放到IO(cpu运算接口input/output)队列中
IO分析hr的头,分析url是否有cache,有的话就直接解析本地的数据

浏览器智能匹配可能的url(从历史,书签等地方),给出智能提示;

2、浏览器查找域名的IP地址

首先查看本地的hosts文件 → 本地的DNS服务器 → 域服务器,查找到对应的IP地址,并且缓存
DNS就是一个映射表,相当于一个电话簿

3、浏览器向web服务器发送一个HTTP请求

拿到对应的IP后,浏览器会以一个随机端口向服务器的80端口发起TCP链接请求,通过
三次握手建立链接,(http1.0和http1.1区别);

为什么要三次握手:为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误

4、连接建立之后

服务器会对TCP连接进行处理,对HTTP协议进行解析,进一步封装http request对象,然后返回一个HTTP
响应,响应包括状态行,响应头和响应正文,我可以通过判断响应状态码去做对应的处理:比方说:
    200 OK 、
    301 永久性重定向 、
    304 直接读取浏览器缓存
    400 Bad Request 表示客户端请求有语法错误,不能被服务器所理解      
    403 表示服务器收到请求,但是拒绝提供服务,通常会在响应正文中给出不提供服务的原因
    404 请求的资源不存在,例如,输入了错误的URL 
    500 服务器发生不可预期的错误

5、拿到数据之后

首先解析html,构建dom树 -> 构建render树 -> 布局render树 -> 绘制render树

解析过程中,浏览器首先会解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完
成后,浏览器开始布局渲染树并将其绘制到屏幕上。这个过程涉及到两个概念:reflow(回流)和repain(重绘)

在浏览器显示HTML时,会获取其他地址内容的标签。浏览器会发送一个获取请求来重新获得这些文件。比如
我要获取外图片,CSS,JS文件等

浏览器自上而下执行,过程中如遇到css、图片等,请求是异步的

当文档加载过程中遇到js文件,html文档会挂起渲染(加载解析渲染同步)的线程,不仅要等待文档中js文件
加载完毕,还要等待解析执行完毕,才可以恢复html文档的渲染线程。因为JS有可能会修改DOM;所以在编写
代码时尽可能的把js写在html的底部,等html主体和css加载完之后再进行加载js;

总结一下:个人理解在浏览器解析的过程中我们需要注意的有两个点:一个是缓存,一个是并行

缓存也有一些效率问题,使用四件戳更新缓存    
常用的缓存DNS、cookie、webstorage表单数据、历史记录···

浏览器是有并行机制的,但是也不是并发连接数约大约好,服务器端每个连接都需要cpu耗损,进行计算的,需要考虑
到这样服务器是吃不消的,浏览器端有一个标准并发连接数2-6;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容