我发现了一些类似的问题,但这些问题并没有完全回答我的问题,以下是我希望能帮助其他人的清单:
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和呈现引擎之间的动作”。
发布于 2019-03-18 23:18:13
我认为答案取决于我们在这里讨论的上下文(哦,伙计,工程师们喜欢在不同的上下文中使用不同的术语)。
上下文1:如果你和一个只知道网络基本知识的朋友交谈.
此上下文中的浏览器引擎指的是为浏览器供电并负责在屏幕上显示内容的软件。如果在维基百科中搜索浏览器引擎,它会告诉您流行的浏览器引擎包括Webkit、壁虎、三叉戟等等(engine)。
这个上下文中的渲染引擎会be...if你的朋友知道这个词,他或她应该进入上下文2 :)
上下文2:如果你在和一个知道浏览器工作原理和背后的疯狂魔力的朋友交谈.
此上下文中的浏览器引擎指的是,即浏览器进程,它主要负责管理所有呈现进程和显示UI。所以在你的问题中,你提到
浏览器引擎:封送UI和呈现引擎之间的操作。
这也是正确的。如果您查看铬的体系结构,您将注意到浏览器进程/引擎将页面内容与呈现过程相协调。
这个上下文中的呈现引擎是指一个程序,它构造DOM,执行JavaScript,并布局出网页,例如Webkit、壁虎、三叉戟。呈现引擎由两个主要组件组成:包含核心布局功能的JavaScriptCore WebCore和JavaScript解释器V8所在的。
您的朋友似乎是一个专家,并且必须知道--呈现过程,它负责构建网页。渲染引擎只是渲染过程中的一个关键部分。
下图显示了Chromium的高级体系结构概述(Google开源版本)。如果您想更多地了解现代浏览器背后的神奇之处,可以查看以下文章:https://medium.com/@zicodeng/explore-the-magic-behind-google-chrome-c3563dbd2739
发布于 2017-12-04 11:23:30
我不知道如何用“引擎”来解释。让我在具有多进程架构的铬浏览器上下文中使用关键字"process“来解释。
浏览器进程:管理呈现程序进程的主浏览器进程
渲染程序:基本上是一个标签(以铬表示)
为了防止整个浏览器崩溃或危及主机系统,由于恶意web内容,将为每个请求委派一个单独的处理web内容的进程。这个单独的进程是Renderer进程(制表符进程),它没有用户权限(即限制对OS系统调用的访问权限)。
当请求一个网站时,呈现过程将该请求转发给浏览器进程,浏览器进程使网络调用该网站。在web内容到达后,浏览器进程将内容发送给呈现程序进程。呈现程序过程解析HTML、CSS文件、准备DOM、维护JS运行时(V8实例),并将内容作为位图格式发送到浏览器进程,以便在UI上显示它。
浏览器进程将呈现程序进程视为黑匣子,并期望呈现程序进程以特定格式显示web内容。这种将web内容转换为所需格式的方法包括几个子组件,其中布局引擎(process)是其中的一个。
因此,浏览器进程处理用户特权资源/请求,如访问文件系统、网络等,在这些资源/请求中,沙箱渲染进程负责将网页转换为浏览器进程可以在OS本机窗口管理器中显示的格式。
我想知道为什么布局引擎被命名为浏览器引擎。上述浏览器过程不同于浏览器引擎(布局引擎).我还没有探索布局引擎。
参考资料:https://seclab.stanford.edu/websec/chromium/chromium-security-architecture.pdf
https://stackoverflow.com/questions/46169376
复制