一个浏览器到底是如何工作的?

学习浏览器工作原理,可以帮助性能优化,排查错误。

浏览器工作原理

  • 实际上就是把一个URL变成屏幕上显示的网页

过程

  1. 浏览器首先使用 HTTP 协议或者 HTTPS 协议,向服务端请求页面
  2. 把请求回来的HTML经过解析,构成DOM树
  3. 计算DOM树上的css属性
  4. 最后根据css属性对元素逐个进行渲染,得到内存中的位图
  5. 一个可选的步骤是对位图进行合成,这会极大地增加后续绘图的速度
  6. 合成之后,再绘制到界面上
    HTTP请求过程并非一个完成之后再进行下一步,而是一个流水线的任务,这样我们才能看到是逐步显示的网页。

HTTP协议(超文本传输协议)

  • 浏览器要做的第一步是利用HTTP(HTTPS)协议把数据取回来
  • 基于TCP协议出现的,HTTP在TCP的双向的通讯道的基础上,规定了Request-Response的模式,必须由浏览器端首先发起。
  • 使用 TCP 协议来传输文本格式的一个应用层协议。

HTTP协议格式

HTTP协议格式

HTTP Method(request line)

  • GET
  • POST
  • HEAD
  • PUT
  • DELETE
  • CONNECT
  • OPTIONS
  • TRACE
    浏览器通过地址栏访问页面都是GET方法,表单提交产生POST方法。
    HEAD和get类似,只返回请求头。
    PUT和DELETE分别表示添加资源和删除资源。
    CONNECT多用于HTTPS和WebSocket。
    其余两个多用于调试,多数线上服务都不支持。

HTTP Status code

  • 1**:临时回应,表示哭护短请继续

1**系列的状态码被浏览器http库直接处理掉,不会让上层应用知晓。

  • 2**:请求成功
    200
  • 3**:请求目标有变化,希望客户端进一步处理
    301&302:永久性和临时性重定向(当前资源已经被转移)
    304:跟客户端缓存没有更新(前端必知必会)

产生原因:客户端本地已经有缓存的版本,并且在request中告诉了服务端,当服务端通过时间或者tag,发现没有更新的时候,就会一个不含body的304状态。

  • 4**:客户端请求错误
    403:无权限
    404:请求页面不存在
  • 5**:服务端请求错误
    500:服务器内部错误
    503:服务器暂时性错误,可以一会再试

HTTP HEAD

请求头


请求头.png

响应头


响应头.png

HTTPS有什么作用?

  1. 确定请求的目标服务端身份
  2. 保证传输的数据不会被网络中间节点窃听或者篡改。
    HTTPS 是使用加密通道来传输 HTTP 的内容,但是 HTTPS 首先与服务端建立一条 TLS 加密通道。

HTTP2.0的优点:

  1. 支持tcp连接复用
  2. 支持服务端推送

解析HTML文件,构建DOM树

词--->栈---->DOM

重流和重绘

重绘repaint:

改变某个元素的背景色、文字颜色、边框颜色等等不影响他的布局属性。

重流reflow:

当属性变化而影响了某些元素的布局,需要重新渲染界面, 该过程称为reflow。

reflow一定引起repaint,而repaint不一定要reflow

需要减少重流,提高页面流畅度。

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

推荐阅读更多精彩内容