专栏首页算法与编程之美深入理解浏览器内核 - 概述

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

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

浏览器是平时学习工作中使用的一个最为平凡的软件,同时也是最重要的一款软件,它是我们了解世界的窗户,所以有时候也称之为世界之窗。但是我们真的了解浏览器是什么吗?了解它背后的原理吗?本系列博客将深入探讨浏览器的原理。

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

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代码,为什么不同的内核显示会有所差别呢?)

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

where2go 团队

本文分享自微信公众号 - 算法与编程之美(algo_coding)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 3-开发共享版APP(搭建指南)-修改手机验证码

    https://www.cnblogs.com/yangfengwu/p/11273743.html

    杨奉武
  • CSS系列之教你几招小技巧,让开发更高效

    俗话说「人靠衣装马靠鞍」,一个网页的漂亮与否CSS起到了很大的作用。它能够帮助我们进行美化。因此 CSS 在前端开发中的地位不用多说。

    六小登登
  • 海康萤石摄像头C3W的Demo使用笔记(一)

    海康萤石摄像头提供了第三方开发的SDK套件。各个模块选择的网址是:https://open.ys7.com/bbs/supportcenter.html#ser...

    用户5935416
  • Python 爬虫之网页解析库 BeautifulSoup

    BeautifulSoup 是一个使用灵活方便、执行速度快、支持多种解析器的网页解析库,可以让你无需编写正则表达式也能从 html 和 xml 中提取数据。Be...

    keinYe
  • jQueryEasyUI 的入门

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>EasyUI拖动效果</title> <...

    用户5927264
  • Android下使用objdump查看导出的函数表

    这里推荐第二种方法, 因为遇到问题相对好查,nm在google里稍难匹配到你要的意思。

    望天
  • web 编写优秀 CSS 代码的 8 个策略

    编写基本的CSS和HTML是我们作为Web开发人员学习的首要事情之一。然而,我遇到的很多应用程序显然没有人花时间真正考虑前端开发的长久性和可维护性。

    用户4962466
  • 外行学 Python 爬虫 第三篇 内容解析

    从网络上获取网页内容以后,需要从这些网页中取出有用的信息,毕竟爬虫的职责就是获取有用的信息,而不仅仅是为了下来一个网页。获取网页中的信息,首先需要指导网页内容的...

    keinYe
  • XSS相关Payload及Bypass的备忘录(下)| 文末有打包好的Payload

    上述payload都打包在了下面链接中,自己现行研究一番,在哪里使用,可以做些模糊测试工作,具体自己研究研究吧,最后 全部.txt 是我将其中的payload都...

    7089bAt@PowerLi
  • Python 爬虫第一篇(urllib+regex)

    爬虫的主要用途即从网站上获取网页,并将网页中的有用信息解析出来。从网站上获取网页内容可以通过 python 内置的 urllib 模块来实现,至于信息的解析说起...

    keinYe

扫码关注云+社区

领取腾讯云代金券