Browser-Engine

Eine Browser-Engine (auch HTML-Renderer oder Layout-Engine genannt) ist die zentrale Softwarekomponente eines Webbrowsers. Die Hauptaufgabe einer Browser-Engine ist es, die Inhalte einer Webseite korrekt darzustellen und interaktiv nutzbar zu machen. Dazu kommen verschiedene Aufgaben, die im Hintergrund ablaufen, wie das Ausführen von JavaScript durch eine JavaScript-Engine und das Verwalten von Ressourcen wie z. B. Bilder oder Schriftarten.
Funktionsweise
[Bearbeiten | Quelltext bearbeiten]Die meisten Webseites benutzen Hypertext Markup Language (HTML) zur Beschreibung des Inhalts und Cascading Style Sheets (CSS) zur Beschreibung der Darstellung. Dazu kommen oft Bilder in Form von Rastergrafiken oder Scalable Vector Graphics.
Parsen
[Bearbeiten | Quelltext bearbeiten]Das HTML-Dokument wird eingelesen und dessen Elemente strukturiert. Diesen Vorgang nennt man Parsen. Nahezu jeder Browser nutzt dafür seinen eigenen Renderer. Die Festlegung der Standards für HTML-Dokumente werden dabei unter anderem vom World Wide Web Consortium festgelegt und definiert. Dabei existieren unterschiedliche Standards, die Syntax der Elemente bleibt aber weitestgehend gleich. Der Entwickler sollte mit Hilfe des sogenannten Doctypes angeben, welcher Standard benutzt wird. Wird der festgelegte Standard nicht vollständig eingehalten, ist das HTML-Dokument nicht valide, der Browser kann die Elemente nicht richtig interpretieren und es kann zu Fehldarstellungen kommen.
Generierung des Document Object Models
[Bearbeiten | Quelltext bearbeiten]Wurde das Dokument erfolgreich eingelesen, wird ein sogenanntes Document Object Model erstellt. Diese hierarchische Struktur beinhaltet Informationen über die Ordnung und Unterelemente (Kinder genannt). Das Document Object Model ist auch nach der Ausgabe noch relevant, da etwa clientseitige Scriptsprachen wie JavaScript auf dieses zugreifen können, um es zu manipulieren.
Stylesheets
[Bearbeiten | Quelltext bearbeiten]Die Stylesheets enthalten eine Liste von Selektoren (Bedingungen an die Teilstruktur des HTML-Dokuments, die zutreffen müssen, damit die Regeln angewendet werden) und Regeln (Attribute, die auf die der entsprechenden Teilstruktur zugeordnete visuelle Repräsentation angewendet werden). Per Voreinstellung liefert der Browser ein Standard-Stylesheet aus, das die meisten Elemente grundformatiert.[1] CSS ist sehr flexibel. Es ist möglich, diesen Satz von Regeln komplett pro Benutzer oder pro Dokument auszutauschen. Dadurch sind den Darstellungsvarianten fast keine Grenzen gesetzt.
Reflow
[Bearbeiten | Quelltext bearbeiten]Die Berechnung von SGML-Strukturen (wie etwa HTML) wird als Reflow bezeichnet. In diesem Prozess wird die grundlegende Geometrie der zu formatierenden Objekte berechnet – etwa die Höhe oder die Breite eines Elements. Die zu formatierenden Objekte werden als frames (dt. Rahmen) bezeichnet[2] und sind nicht zu verwechseln mit den Frames, die das Laden einer HTML-Seite in eine andere ermöglichen.
Liste von Browser-Engines
[Bearbeiten | Quelltext bearbeiten]Browser-Engine | Entwickler | Verwendet in | Beschreibung |
---|---|---|---|
Engines von produktiv nutzbaren Webbrowsern | |||
Gecko | Mozilla Foundation | u. a. Mozilla Firefox, SeaMonkey, Mozilla Camino | Open Source |
KHTML | KDE | u. a. Konqueror | Open Source |
WebKit | Apple | u. a. Safari, Epiphany und ICab | Open Source, Abspaltung von KHTML |
Blink | u. a. Opera[3], Google Chrome, Vivaldi und Microsoft Edge[4]) | Open Source, Abspaltung von WebKit | |
Experimentelle bzw. in Entwicklung befindliche Engines | |||
LibWeb | Ladybird Browser Initiative | Ladybird | Open Source |
Servo | Mozilla und Samsung | Firefox Reality | Open Source |
NetSurf | NetSurf | Open Source | |
Eingestellte Engines | |||
Presto | Opera Software | 2003–2013 verwendet von Opera | proprietär |
Trident | Microsoft | 1997–2022 verwendet von Internet Explorer für Windows | proprietär |
Tasman | Microsoft | 2000–2003 verwendet von Internet Explorer für Macintosh | proprietär |
EdgeHTML | Microsoft | 2015–2019 verwendet von Microsoft Edge | proprietär |
Zu Browser-Engines für textbasierte Webbrowser siehe Liste von Webbrowsern#Textbasierte Webbrowser.
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Standard-Stylesheet einer älteren Firefox-Version
- ↑ Chris Waterson: Notes on HTML Reflow. Mozilla Foundation, archiviert vom (nicht mehr online verfügbar) am 3. Juli 2010; abgerufen am 15. Juli 2008 (englisch). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ Luca Caracciolo: Opera setzt auf Webkit: Was bedeutet das für die Weiterentwicklung von HTML? In: t3n Magazin. 14. Februar 2013, archiviert vom am 16. Februar 2013; abgerufen am 28. Juni 2013. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ Upgrading to the new Microsoft Edge. 15. Januar 2020, abgerufen am 22. Januar 2020 (amerikanisches Englisch).