【问题标题】:What's the difference between a browser engine and rendering engine?浏览器引擎和渲染引擎有什么区别?
【发布时间】:2018-02-20 12:03:45
【问题描述】:

我发现了一些类似的问题,但他们没有完全回答我的问题,这是我希望对其他人有所帮助的列表:

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


【解决方案1】:

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

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

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

为了防止整个浏览器因恶意网页内容而崩溃或危及主机系统,会委派一个单独的进程来处理每个请求的网页内容。这个单独的进程是 Renderer 进程(tab 进程),它没有用户权限(即,对 OS 系统调用的访问受限)。

当一个人请求一个网站时,渲染进程将请求转发给浏览器进程,浏览器进程反过来使网络调用该网站。网页内容到达后,浏览器进程将内容发送给渲染器进程。 渲染器进程解析 HTML、CSS 文件,准备 DOM,维护 JS 运行时(V8 实例)并将内容以位图格式发送到浏览器进程,以便在 UI 上显示。

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

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

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

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

【讨论】:

  • 一个很好的答案。我认为可以通过更明确地说明为什么它具有这种软件架构来改进它。您描述的体系结构的想法是安全性,并将不受信任的 Web 内容的呈现沙箱化。因此,虽然许多替代架构都是可能的,但您概述的架构已经发展为加强网络浏览器对基于内容的攻击的攻击。您的回答暗示如果课程但学生可能不知道旧浏览器的历史安全问题。因此,指出简单架构的那些历史问题可能会有所帮助。
【解决方案2】:

我认为答案取决于我们在这里讨论的上下文(哦,伙计,工程师喜欢在不同的上下文中使用不同的术语)。

上下文 1:如果您正在与仅了解网络基本知识的朋友交谈...

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

此上下文中的渲染引擎将是...如果您的朋友知道这个词,他或她应该属于上下文 2 :)

上下文 2:如果您正在与了解浏览器工作原理以及浏览器背后所有疯狂魔力的朋友交谈......

这里的浏览器引擎是指浏览器进程,它主要负责管理所有的渲染进程和显示UI。所以在你的问题中,你提到了

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

这也是正确的。如果您查看 Chromium 的架构,您会注意到浏览器进程/引擎将页面内容与渲染进程进行协调。

在此上下文中的渲染引擎是指构建 DOM、执行 JavaScript 和布局网页的程序,例如Webkit,壁虎,三叉戟。渲染引擎由两个主要组件组成:WebCore(包含核心布局功能)和 JavaScriptCore(JavaScript 解释器 V8 所在的位置)。

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

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

【讨论】:

    猜你喜欢
    • 2010-12-21
    • 2021-06-19
    • 2012-01-02
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 2012-02-12
    相关资源
    最近更新 更多