确实非常的复杂!
首先可以明确的是,浏览器是少有的大型软件系统,其复杂性可以媲美我们每天使用的Windows系统。
微软甚至放弃自家的IE和edge内核,转而使用chrome内核,chrome优秀是一方面,更重要是开发浏览器内核太复杂,太烧钱。当然微软已经不是当年的微软了!
现在微软也在全力拥抱开源,甚至在win10里面支持内置wsl的Linux内核。如果说某一天我们使用的Windows系统,基于Linux内核开发,大家也不要太惊讶。
随着微软加入chrome阵营,chrome实力大增,会加速甩开其他浏览器!说不定某一天苹果也宣布使用chrome内核!
从浏览器的基本功能来看,其核心模块有:
网络请求
我们知道,目前web系统,都是BS模式的,也就是系统相关的页面,发布在服务器端的。
浏览器想要运行,第一件事情就是向服务器请求页面代码。
这就是网络请求,浏览器的最基本功能之一。
页面解析请求到页面之后,需要对页面进行解析,先认识页面,然后才能进行下一步工作。
页面渲染解析了页面之后,就可以对页面进行渲染了。渲染完成之后,我们就看到了web系统的界面了。
这些功能,似乎看起来没有那么复杂!那浏览器的几千万行代码,到底在实现了哪些复杂的功能呢?
模块代码量统计稍后补充。。。
此外,现代浏览器还具备以下特点:
跨平台
这意味着你不能简单调用操作系统的api来实现功能,必须考虑跨平台问题,还有可能要从头实现某些重要功能。
高性能
Google专门为Google chrome打造了高性能的V8引擎,来解释执行JS代码。如今结合nodeJS,V8引擎甚至已经在后端发力。
高标准
也就是各种web标准要支持到位,要做到上图一样,360度无死角,才能成为优秀的浏览器。
HTML
HTML用来描述网站页面的界面骨架,由一颗树形结构的HTML文档构成,也称为DOM树。
在HTML中,记录了构成页面的各种控件及其位置,参数等等基本结构。页面加载的时候,是最先下载HTML并解析的。
HTML最新版本是HTML5,其中加入了大量新特性,浏览器必须支持这些最新的HTML特性,才能算是一个合格的浏览器。
CSS
CSS则是负责页面的美化装修。什么前景色,背景色,圆角边框,边框颜色,边框大小等等。基本上你能想到的界面调整参数,CSS里面都应有尽有!这也正是浏览器的一个复杂模块。目前最新版本是CSS3。
JavaScript
界面骨架有了,也可以做的非常漂亮,尽善尽美了。那页面的逻辑怎么办?
没错,JavaScript就是负责前端页面的逻辑部分的。从最早期的前端输入校验,发展到如今的近乎万能,JavaScript经历了漫长的发展。
其中也经历了各种标准和版本,目前的主流版本是ES6。
浏览器为了支持最新的JavaScript,也需要开发巨量代码。
WebGL
WebGL是最近几年才火爆起来的一个特性,他将web的渲染性能大幅提升。
因为通过WebGL,我们可以直接调用显卡进行渲染和计算。
这使得在web端实现大型的三维引擎成为可能。比如Three.js,Cesium等等。
为了支持webgl,浏览器又必须进行大量开发工作。
Web Assembly
前面说到了JavaScript,使用JavaScript我们已经可以在web端实现大型三维引擎了。
尽管如此,还是不能满足我们目前对于web端的更为复杂的应用的效率要求。还是有很多人认为JavaScript的速度慢。
于是人们又起草了Web Assembly的标准。这是一种类似汇编语言的web标准,号称web端的汇编语言。
其目的在于解决JavaScript执行效率低的问题。同时可以使用C++等高级语言,开发Web Assembly模块。
如今已经有很多Web Assembly结合JavaScript的应用案例了。如Google在其Google earth的web版本中就大量使用该技术。
这也会导致浏览器花费大量代码来支持Web Assembly的各种功能。
总结
非常感谢您能够耐心的看到这里。不知道您有没有发现,我们在Windows里面做的很多事情,在浏览器里面,居然也能做了!这说明浏览器已经慢慢发展到和操作系统差不多的功能了,您说他能不复杂吗!
请人做一个网站要多少钱?这个要看你想用什么方式搭建网站,不同的建站方式费用肯定不一样的,一般我们可以把建站方式分为三种:模板建站、仿站、定制开发网站; 模板站是最便宜的,一般几百到一两千,当然市面上也...
今天给各位分享山东域名备案时间的知识,其中也会对域名备案管理局审核要多久进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!文章目录列表: 1、域名备案一般需要多久? 2、企业官...
域名的价值的确在下降,因为网站已经不是重心了,虽然很多人还是习惯通过百度、头条、360、谷歌、UC方面搜索,而搜索的一些结果都是通过网站网页呈现的,在手机上很多的网页都需要域名呈现。但是现在很多的一些...
1、怎么知道一个域名有没有备案?如何确认网站底部下域名备案号的真伪呢?大部分人都是通过域名来查询备案信息的,其实知道备案号也一样可以查询,方法很简单。打开工信部域名信息查询系统。 2、下拉页面,找到并...
谢邀~ Nginx现在是互联网上应用广泛的服务器软件,从市场使用量上仅次于Apache。它的主要特点就是性能极高,能充分发掘一台服务器的性能。相比较而言,Apache就显得太笨太重了。所以主流的互联网...
最近刚做了网站的备案,我想我有资格回答你这个问题。 域名是可以不备案的,但是假如你要实现网站在线销售、微信支付等功能,备案是必须的。 域名备案分为工信部备案和公安部备案,全国各地规定有所不同,在我们上...
简约风格近两年来越来越受到年轻人的欢迎,时尚又有品位。而且,在这种炎热的夏天,简约风的装修,能让家里看起来都凉快啦! 今天我们来一起看看,这些简约风的装修,各有哪些特点? 黑白灰 整体颜色以黑白灰...
如果单从经济上排名的话,秦皇岛的确处在河北各城市的最底层,但是其实去过秦皇岛的朋友都知道,无论是城市建设,还是人们的生活水准相比较于其他城市并没有太大差距 秦皇岛,海滨城市,全国性综合交通枢纽,中国...