「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。
浏览器
浏览器在现代网络环境中我们经常接触,在前端页面开发中,我们经常有大把的资源来提供我们学习HTML、CSS、JavaScript以及相关语言的学习机会,但是浏览器的相关知识总是那么的神奇,它无处不在,我们却对它知之甚少。
浏览器是从计算机发展之后的现代环境中开始发展的,你知道么,事实上,浏览器的竞争市场也非常的严苛,分为“第一次浏览器大战”和“三组鼎力”的两大发展过程。
下面这张图,是现代浏览器发展的一个历史进程图,从图中我们想必是可以Get到现代浏览器发展的一个竞争激励以及蒸蒸日上。
浏览器的功能模块
对于我们经常使用浏览器,你知道如果实现它,需要实现多少个功能拆分么?
我们在这个部分队员浏览器的常见功能模块进行一下拆分。大概分为十五个部分。
-
网络
它是第一步,浏览器通过网络模块来下载各种各样的资源,例如HTML文本、Javascript代码、样式表、图片、音视频文件等。这部分非常重要,因为它耗时较长且需要安全访问互联网上的资源。
-
资源管理
从网络下载或者本地获取资源,并将它们管理起来,这需要高效的管理机制。例如如何避免重复下载、缓存资源,都是它们需要解决的问题
-
网页浏览
这是浏览器最核心也是最基本、最重要的功能。它通过网络下载资源并从资源管理器获取资源,将它们转为可视化结果,这也是浏览器内核最重要的功能。
-
多页面管理
支持多个网页同时加载,这也让浏览器变得更为复杂。同时,如何解决多页面的相互影响和安全等问题也非常重要。
为此,一些浏览器做了大量的工作,例如可能使用线程或者是进程来绘制页面。
-
插件和扩展
这是现代浏览器的一个重要特征,它们不仅能显示网页,而且能支持各种形式的插件和扩展。
插件也是用来显示网页特定内容的,而扩展则是增加浏览器新功能的软件或者压缩包。
目前常见的插件有NPAPI、PPAPI、ActiveX等,扩展则跟浏览器密切相关,常见的有FireFox和Chrome扩展。
-
书签管理
-
历史记录管理器
-
设置管理
-
下载管理
-
账号和同步
将浏览的相关信息,例如历史记录、书签等信息同步到服务器,给用户一个多系统下的统一体验,这对用户非常友好,是浏览器易用性的一个显著标识
-
安全机制
本质是提供一个安全的浏览器环境,避免用户信息被各种非法工具窃取和破坏。
这可能包括显示用户访问网站是否安全、为网站设置安全级别、防止浏览器被恶意代码攻破等。
-
隐私管理
-
外观主题
-
开发者工具 这对普通用户来说用处不大,但是对开发者却意义非凡。
一个优秀的开发者工具可以帮助审查HTML元素、调试Javascript代码、改善网页性能等。
-
多操作系统支持
用户代理
用户代理(UserAgent)是个很奇怪的东西,作用是表明浏览器的身份,因而互联网的内容供应商能够知道发送请求的浏览器身份,浏览器能够支持什么样的功能。例如桌面版本和Android版本。
随着现代浏览器的不断发展,用户代理字段变的越来越长,我们可以通过chrome的控制台来去查看我们当前用户代理的字段描述。
也可以通过下面的设置进行设备的模拟。