特别提醒:本文出自B站的卢克。

为什么我们要去了解浏览器的工作原理呢?很简单,让你写出更好的代码和提供更好的用户体验。浏览器对于前端工程师,就像赛车对于一个赛车手一样,你需要对自己的战车足够的了解,才能跑的更快,弯道拐的更优雅。伟大的作家鲁迅曾说过,不懂浏览器的前端工程师不是好码农。

1.浏览器发展史

1991年:Berners-Lee建立了第一代网络浏览器:WorldWideWeb。对了,上一期讲的互联网,他也是发明者之一,真大神,牛批!当时的WorldWideWeb的功能十分简单,只支持显示文本,图片等。

1993年: Mosaic问世,这是一种可以同时显示文本和图像的浏览器,一经推出就受到全球用户的欢迎

1994年:网景浏览器发布,它是由曾经参与开发Mosaic的人共同创建,虽然网景的功能也十分有限,只能显示简单的静态html,没有js,css,但依然大受欢迎,获得世界范围内的成功,并占领了绝大多数市场份额。同年也出现了Opera,这个大家可能用的比较少

然后1995年微软发布了万恶的IE1.0,IE2.0,自此第一次浏览器大战正式打响。接着1996年发布的IE3.0和windows操作系统集成在了一起,而此时网景的市场份额已经达到了86%。IE发行后的4年内,在windows操作系统的帮助下,逐渐取代了网景浏览器的领导地位,达到了市场份额的75%,到1999年,它已经占据了浏览器市场的99%,简直恐怖,前端工程师的噩梦来临了。

然而网景公司并没有一蹶不振,网景在1998年成立了Mozilla基金会,在该基金会的推动下,网景公司开发了著名的开源项目火狐浏览器Firefox来迎击IE,并在2004年发布了1.0版本,拉开了第二次浏览器大战的序幕

在Firefox发布的前一年2003年,苹果发布了Safari浏览器,而且该浏览器被包含在所有苹果操作系统中,更重要的是,在2005年苹果开源了Safari浏览器的内核webkit。

2008年,谷歌以苹果开源项目WebKit作为内核,创建了一个新的项目Chromium,在该项目的基础上苹果发布了自己的浏览器产品Chrome,Chrome发展十分迅速,现在已经成为全球最受欢迎的浏览器。

由于IE的性能和体验问题,IE逐渐掉队。2015微软也放弃了IE,推出了基于webkit内核的Edge浏览器作为IE的替代品,但为时已晚。

咱们再看看国内的浏览器。

我记得小时候身边的人的浏览器都是被360或者qq浏览器统治了,后来才知道,长大后才知道你们都是披着马甲的IE!!不过近几年国内浏览器的都是IE和chromium双内核。那我们就没有自己研发的浏览器内核么?至今是没有的,08年曾闹过一个笑话,红芯科技为了融资宣称自主研发的红芯浏览器使用的是公司自己开发的内核。结果被技术圈内网友打脸,最后证实是使用的是blink内核。研发内核是十分耗时耗力的,就拿chromium来说,据传Google最多时候召集过1000个硅谷的程序员集中力量去开发 Chromium内核,花了至少10年。所以自研国产浏览器内核任重而道远啊。


虽然浏览器品类众多,但他们的提供的功能都基本类似,框架结构也都大同小异。

2.浏览器结构

渲染引擎下面还有很多小的功能模块,比如负责网络请求的网络模块,用于解析和执行js的js解释器。还有数据存储持久层,帮助浏览器保存各种数据,比如cookie等等


渲染引擎可以说是一个浏览器的核心与灵魂,也是本期视频内容的重点。我们往往会把渲染引擎称为浏览器内核。不同浏览器使用的内核也不大一样,其中IE使用的Trident,Firefox是Gecko,Sarafi使用的webkit, 并将其开源,Chrome是使用的基于webkit改造优化的Blink渲染引擎,也将其开源,Opera和Edge也是使用的Blink。可以看到webkit项目的开源对浏览器的发展做了多大的贡献。

我们这期视频主要以Chrome为例,那下面如果不做特殊说明都是以chrome为例来讲解浏览器是如何工作的。

现在,我们换一个角度来拆解一下浏览器的组成结构。

浏览器是运行在操作系统上的一个应用程序,那我们在小学二年级就学过,每个应用程序必须至少启动一个进程来执行其功能。那一个程序往往需要运行很多任务,那进程就会创建一些线程来帮助它去执行这些细小的任务。这里我们就引入了两个概念,进程和线程。给你3秒钟时间想想进程和线程的联系和区别。三、二、一。没想起来的同学自行拿出小学课本《计算机操作系统教程》复习一下。

来,我给大家补补课~

浏览器工作原理/浏览器是如何渲染页面?相关推荐

  1. 浏览器工作原理:从 URL 输入到页面展现到底发生了什么?

    转载自简书:https://www.jianshu.com/p/d616d887953a,仅做记录分享,侵删 对浏览器原理有过了解的一定不会陌生这篇神文<How Browsers Work> ...

  2. 浏览器工作原理与实践学习笔记

    浏览器工作原理与实践 参考来源: 极客时间-李兵专栏 李兵简介: 08年,在 Chromium 和 IE 发布了一款双核浏览器:太阳花,国内第一款双核浏览器 ,支持chrome并兼容IE,日活达到了2 ...

  3. 《深入理解Android》一2.1 浏览器工作原理概述

    本节书摘来自华章出版社<深入理解Android>一书中的第2章,第2.1节,作者孟德国 王耀龙 周金利 黎欢,更多章节内容可以访问云栖社区"华章计算机"公众号查看 2. ...

  4. <<浏览器工作原理与实践>>读书笔记

    1. 进程和线程的区别 概念: 进程:操作系统进行资源分配和调度的基本单位:程序的运行实例:(在我们启动一个程序的时候,操作系统会为该程序创建一块内存空间,用来存放代码,运行数据,和执行任务的主线程, ...

  5. 《浏览器工作原理与实践》学习笔记

    浏览器原理 前言 本文是学习李兵老师的<浏览器工作原理与实践>过程中记录笔记,详细链接见文末 进程vs线程 进程:一个应用程序的运行实例就是一个进程,详细来说就是:启动一个应用程序的时候, ...

  6. 浏览器工作原理探究详解

    浏览器工作原理探究 标签: 浏览器工作原理 / web性能优化 引言 最近对web的性能优化比较感兴趣,而前端代码主要在浏览器工作的.如果对浏览器的工作原理了解清楚,可以为web性能优化提供方向以及理 ...

  7. 浏览器工作原理及相关内核、技术介绍

    BY XIAOMING · 2014 年 1 月 16 日. 正文开始: 一.浏览器工作原理(简化版) 1.浏览器用来干什么用 浏览器的主要功能是将用户请求访问的web资源呈现出来,它需要从服务器请求 ...

  8. 【浏览器工作原理与实践笔记一】:宏观视角上的浏览器

    [浏览器工作原理与实践笔记一]:宏观视角上的浏览器 文章目录 [浏览器工作原理与实践笔记一]:宏观视角上的浏览器 一.Chrome架构:仅仅打开了1个页面,为什么有4个进程 二.TCP协议:如何保证页 ...

  9. 【技术干货】浏览器工作原理和常见WEB攻击 (下)

    本文作者:上海驻云开发总监 陈昂 上篇给大家带来的是关于浏览器基本工作原理的总结和介绍,这篇文章重点给大家说明有哪些常见WEB攻击. 常见WEB攻击 互联网是个面向全世界的开放平台,越是开放的东西漏洞 ...

最新文章

  1. 几种常用编程语言的编程思想和方法 转
  2. 每日一皮:啥一文理解TCP和UDP的区别!这张图才是最屌的!
  3. 客户合作伙伴关系问题
  4. Python3基础教程:可变参数和关键字参数
  5. 图像处理之卷积---任意卷积核的快速实现
  6. 从零开始搭建口袋妖怪管理系统(3)-实现一个简单的SPA管理系统
  7. 佐藤hiroko-爱拯救了我(步之物语)
  8. python实现水仙花数
  9. android 100以内的随机数
  10. bugkuCTF 网站被黑
  11. 什么是Photoshop中的图层和蒙版?
  12. QLExpress入门学习
  13. 区块链三种网络地址btc\eth\fil
  14. 华硕(ASUS)路由器AP模式设置教程
  15. 建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作
  16. 【JavaScript】32_解构对象与对象的解构
  17. 一个简单的 Vue 头像选择器
  18. 东北大学计算机录取分数线2020,985双一流大学 东北大学2020年各省分专业最低录取分数线...
  19. [Unityamp;amp;Steam]Steam各种用户数据查询
  20. 手撸一款属于自己的Maven插件,说干就干

热门文章

  1. 【超简单!】如何在ZINC库中批量下载虚拟筛选小分子数据集 (Windows环境下)
  2. 计算机为什么会出现网络用户,电脑登陆QQ经常提示异地登陆是怎么回事
  3. 真相了!小米 9 透明尊享版叫停发售,其实是三星的锅...
  4. 合并多个工作簿的宏代码
  5. OSChina 周日乱弹 —— 对,今天都是笑话
  6. python爬虫微博关键字_微博关键词爬虫——基于requests和aiohttp
  7. 快讯:金婚大礼包:火星人家园网站今日开通!
  8. 买天猫网店转让天猫的重点是什么
  9. python实现鼠标手动截图(类似于QQ截图)
  10. 在南宁读书的第一次外出游玩记