深入理解浏览器内核 - 概述

简介: 深入理解浏览器内核 - 概述

  继"汉芯"事件造假之后,近期"红芯"浏览器事件可谓炙手可热。【深入理解浏览器内核】系列文章将会和大家一起来深入理解浏览器的内核,揭开浏览器神秘的面纱。

科学研究很多情况下都需要大量的计算,从科学家的心算到开始借助外部工具实现计算。外部工具从最初的纸和笔、计算器、再到图灵机,发现还是无法满足大规模的计算需求,因此需要一种计算能力更强的外部工具来实现科学计算,电子计算机在此背景下应运而生。

1946年诞生了世界上第一台现代电子计算机ENIAC,该计算机相对于之前的计算设备来说计算速度提升了很多,但是造价非常昂贵、占地面积大、操作难度大等缺点。

随着科学的不断进步,科学研究需要的计算能力越来越强。虽然一台电子计算机的计算能力很强,但还是十分有限,因此迫切需要多台电子计算机的计算能力。如何让多台电子计算机协同工作,实现互联互通,完成数据传输和共享,由此诞生了互联网。将电子计算机连接起来,通过TCP/IP协议簇完成互联互通,实现数据传输。

随着硬件和软件技术的不断发展,电子计算机的计算速度越来越快,体积越来越小,尤其是引入桌面操作系统后,电子计算机的操作越来越便捷,电子计算机的功能也由最初的科学计算拓展为学习、娱乐等更多方面。此时电子计算机进入了PC时代,即每个普通的用户都可以使用电子计算机。随着使用电子计算机的用户不断增加,互联网上产生的信息资源也越来越多。如何让互联网上的用户快速实现信息资源共享,便捷的访问互联网上的各种资源,由此诞生了万维网WWW(World Wide Web)。

万维网通过统一资源定位符URL来标识互联网上的每一个信息资源,借助HTTP协议完成互联网信息资源的传输。万维网将世界各地的信息资源连接在一起,编织了一张庞大的信息资源网,我们如何进入这张网,答案就是浏览器。

(Q1: 互联网和万维网的区别是什么?)

浏览器是万维网的入口,是我们获取互联网信息资源的重要工具,因此各大厂商都推出了自己的浏览器,抢占互联网信息的入口。日常生活中大家熟知的浏览器有微软IE浏览器、谷歌浏览器、360浏览器、搜狗浏览器、QQ浏览器等众多浏览器。

那么这些浏览器软件是如何开发出来的呢?每个厂商都各自独立完成开发吗?平时听说的双核浏览器是什么意思?

浏览器简单来说主要由内核和插件组成。插件顾名思义就是基于内核之上的一些扩展功能,如360浏览器比较著名的12306抢票插件,常见的内核有Gecko、Trident、WebKit、Blink等,且这些内核大部分都是开源的,如WebKit。因此一般的浏览器开发都是基于现有的内核来做二次开发,增加一些扩展功能。

平时大家所说的双核浏览器指的就是这个浏览器有两个内核,如WebKit和Trident。为什么需要两个内核呢?大家平时在生活学习中会发现,有些网站用微软的IE浏览器访问会正常显示,但是如果用其他浏览器访问的话,网页就会错位、显示不全或无法显示。这个现象表示当前网站只支持微软的内核Trident,不支持其他内核,因此多内核浏览器可以实现更多网站的正常访问,这个内核显示有问题,就换一个其他内核。

(Q2: 同样的HTML代码,为什么不同的内核显示会有所差别呢?)

因此,对于浏览器来说,内核是其核心组成部分。浏览器的内核作用是什么,有哪些模块组成?如想了解更多,欢迎持续关注本系列博客。

目录
相关文章
|
存储 缓存 前端开发
浏览器缓存机制(一):概述
浏览器缓存机制(一):概述
517 0
|
存储 缓存 Android开发
【精简版】浏览器渲染机制(完整流程概述)(下)
【精简版】浏览器渲染机制(完整流程概述)(下)
678 0
|
存储 JavaScript 前端开发
【精简版】浏览器渲染机制(完整流程概述)(上)
【精简版】浏览器渲染机制(完整流程概述)(上)
512 0
|
存储 SQL 缓存
浏览器数据库 IndexedDB(一) 概述
IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。
769 0
浏览器数据库 IndexedDB(一) 概述
|
Web App开发 缓存 移动开发
57、浏览器环境概述
网页中嵌入 JavaScript 代码,主要有四种方法。 • <script>元素直接嵌入代码。 • <script>标签加载外部脚本 • 事件属性 • URL 协议
355 0
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
1046 156
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
543 63
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
462 5
在浏览器执行js脚本的两种方式
|
机器学习/深度学习 人工智能 前端开发
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
使用TensorFlow.js在浏览器中进行情感分析是一个非常实用的应用场景。TensorFlow.js 是一个用于在JavaScript环境中训练和部署机器学习模型的库,使得开发者能够在客户端直接运行复杂的机器学习任务。对于情感分析,我们可以使用预先训练好的模型来识别文本中的积极、消极或中性情感。
892 4
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统