It’s #FrontendFriday – Browserengines
It’s Friday that means #FrontendFriday! :)
Heute geht es um das Thema „Browserengines“.
Was ist eigentlich eine Browserengine?
Eine Browser-Engine ist eine zentrale Softwarekomponente eines Webbrowsers.
Die Hauptaufgabe einer Browserengine besteht darin, HTML-Dokumente und andere Ressourcen einer Webseite in eine interaktive visuelle Darstellung auf dem Gerät eines Benutzers zu transformieren.
Eine Browser-Engine ist kein eigenständiges Computerprogramm, sondern ein Bestandteil eines Webbrowsers, aus dem der Begriff abgeleitet ist.
Neben der Browserengine werden in Bezug auf verwandte Konzepte zwei weitere Begriffe verwendet: „Layout-Engine“ und „Rendering-Engine“. Theoretisch könnten Layout und Rendering von separaten Engines übernommen werden. In der Praxis sind sie jedoch eng gekoppelt und werden selten getrennt betrachtet.
Zusätzlich zum Layout und Rendering erzwingt eine Browser-Engine die Sicherheitsrichtlinien zwischen Dokumenten und implementiert die Datenstruktur des Document Object Model (DOM), die Seitenskripten ausgesetzt ist. Es werden auch Hyperlinks und Webformulare behandelt.
Das Ausführen von JavaScript (JS)-Code ist jedoch eine separate Angelegenheit, da jeder gängige Webbrowser dafür eine eigene Engine verwendet. Die JS-Sprache wurde ursprünglich für die Verwendung in Browsern entwickelt, wird aber nun auch an anderer Stelle verwendet, so dass die Implementierung von JS-Engines von Browser-Engines entkoppelt ist. In einem Webbrowser arbeiten die beiden Engines über die gemeinsame DOM-Datenstruktur zusammen.
Vergleich von Browserengines
Engine
|
Status
|
Verwalter
|
Lizenz
|
Eingebunden in
|
---|---|---|---|---|
WebKit | Aktiv | Apple | GNU LGPL, BSD-style | Safari sowie alle Browser, die im iOS App Store zufinden sind |
Blink | Aktiv | GNU LGPL, BSD-style | Google Chrome und alle anderen Chromium-basierten Browser wie Microsoft Edge, Brave und Opera | |
Gecko | Aktiv | Mozilla | Mozilla Public | Firefox und Thunderbird email client, sowie forks, SeaMonkey und Waterfox |
Servo | Aktiv | Mozilla | Mozilla Public | Versuchsbrowser (Kann unvollständig oder fehlerhaft sein) |
Goanna | Aktiv | M. C. Straver | Mozilla Public | Pale Moon und Basilisk browser |
NetSurf | Aktiv | Hobbyisten | GNU GPLv2 | NetSurf |
KHTML | Nicht fortführend | KDE | GNU LGPL | Konqueror |
Trident | Nicht fortführend | Microsoft | Proprietary | Internet Explorer und Microsoft Outlook |
EdgeHTML | Nicht fortführend | Microsoft | Proprietary | formerly in the Microsoft Edge browser |
Unterstüzung von HTML, CSS, Grafiken und Typographie
Engine
|
Status
|
---|---|
WebKit | Aktiv |
Blink | Aktiv |
Gecko | Aktiv |
KHTML | Nicht fortführend |
Presto | Nicht fortführend |
EdgeHTML | Nicht fortführend |
Trident | Nicht fortführend |
Bevor ich mich mit Browserengines beschäftigt hatte:
Und jetzt: