浏览器引擎和渲染引擎之间有什么区别?

问题描述 投票:3回答:2

我发现了一些类似的问题,但他们并没有完全回应我的问题,这里是我希望能帮助其他人的清单:

What's the difference between a browser engine, a rendering engine and a user agent?

Difference between layout engine and javascript engine


正如这里解释的https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/

浏览器引擎:在UI和呈现引擎之间编组操作。

渲染引擎:负责显示请求的内容。例如,如果请求的内容是HTML,则呈现引擎解析HTML和CSS,并在屏幕上显示解析的内容。

根据维基百科:一个网络浏览器引擎(有时称为网页布局引擎或网络渲染引擎)......

但我有点困惑,我仍然无法理解浏览器引擎是什么,“UI和渲染引擎之间的动作是什么”。

google-chrome firefox browser
2个回答
4
投票

我不知道如何用“引擎”来解释。让我通过在具有多进程架构的chrome浏览器的上下文中使用关键字“process”来解释。

浏览器进程:管理渲染器进程的主浏览器进程

渲染器过程:基本上是一个标签(铬)

为了防止整个浏览器崩溃或危及主机系统,由于恶意Web内容,委托单独的进程处理每个请求的Web内容。这个单独的过程是Renderer进程(选项卡进程),它没有用户权限(即对OS系统调用的访问权限有限)。

当请求网站时,呈现过程将请求转发到浏览器进程,进而使网络调用该网站。在Web内容到达之后,浏览器进程将内容发送到呈现器进程。渲染器进程解析HTML,CSS文件,准备DOM,维护JS运行时(V8实例)并将内容作为位图格式发送到浏览器进程以在UI上显示它。

浏览器进程将渲染器进程视为黑盒子,并期望渲染器进程中的某种格式的Web内容。将Web内容转换为所需格式包括几个子组件,其中布局引擎(进程)是一个。

因此,浏览器进程处理用户特权资源/请求,例如访问文件系统,网络等,其中沙盒渲染器进程负责将网页转换为浏览器进程可以将其显示在OS本机窗口管理器中的格式。

我想知道为什么布局引擎被命名为浏览器引擎。上面提到的浏览器过程与Browser-Engine(布局引擎)不同。我还没有探索过布局引擎。

参考文献:https://seclab.stanford.edu/websec/chromium/chromium-security-architecture.pdf


1
投票

我认为答案取决于我们在这里讨论的背景(哦,男人,工程师喜欢在不同的环境中使用不同的术语)。

背景1:如果你正在和一个只知道网络基本知识的朋友交谈......

此上下文中的浏览器引擎是指为您的浏览器供电并负责在屏幕上显示内容的软件。如果您在维基百科中搜索浏览器引擎,它会告诉您流行的浏览器引擎包括Webkit,Gecko,Trident等(https://en.wikipedia.org/wiki/Browser_engine)。

在这种情况下渲染引擎将是...如果你的朋友知道这个词,他或她应该落入上下文2 :)

背景2:如果你正在和知道浏览器如何工作的朋友以及他们背后的所有疯狂魔法交谈......

此上下文中的浏览器引擎是指浏览器进程,主要负责管理所有渲染进程和显示UI。所以在你的问题中,你提到过

浏览器引擎:在UI和呈现引擎之间编组操作。

这也是正确的。如果你看一下Chromium的架构,你会发现浏览器进程/引擎使用渲染过程来协调页面内容。

该上下文中的呈现引擎指的是构造DOM,执行JavaScript和布局网页的程序,例如, Webkit,Gecko,Trident。渲染引擎由两个主要组件组成:WebCore包含核心布局功能,JavaScriptCore包含JavaScript解释器V8。

您的朋友似乎是专家,还必须了解渲染过程,该过程负责构建网页。渲染引擎只是渲染过程中的关键部分。

下图显示了Chromium体系结构的高级体系结构概述(Google Chrome开源版本)。如果您想了解更多关于现代浏览器背后的魔力,您可以查看这篇文章:https://medium.com/@zicodeng/explore-the-magic-behind-google-chrome-c3563dbd2739

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.