
WebKit
WebKit ist das Programmstück, das aus dem Code einer Internetseite das fertige Bild auf dem Bildschirm macht. Es steckt in Apples Browser Safari und in jedem Browser auf dem iPhone.
Eine Internetseite besteht nicht aus einem Bild, sondern aus Text mit Anweisungen. Dort steht zum Beispiel, dass eine Überschrift groß und fett sein soll und ein Bild rechts daneben steht. Irgendetwas muss diese Anweisungen lesen und daraus eine sichtbare Seite bauen. Dieses Etwas heißt Browser-Engine, und WebKit ist eine der drei großen davon. Apple entwickelt WebKit, und es steckt im Browser Safari auf Mac, iPhone und iPad. Der Browser drumherum liefert nur Adresszeile, Tabs und Lesezeichen — die eigentliche Arbeit macht die Engine.
Apples Sonderweg auf dem iPhone
WebKit ist deshalb interessant, weil Apple es lange Zeit auf dem iPhone zur Pflicht gemacht hat. Wer dort Chrome oder Firefox installierte, bekam nicht wirklich Chrome oder Firefox. Er bekam eine andere Oberfläche, darunter aber weiterhin WebKit. Apple begründete das mit Sicherheit: Nur so könne man kontrollieren, welcher fremde Code auf dem Gerät läuft.
Kritiker sahen darin vor allem einen Wettbewerbsvorteil für Apple. Sie warfen dem Unternehmen vor, WebKit absichtlich langsam zu erweitern. Funktionen, die Webseiten zu echten Konkurrenten von App-Store-Apps machen würden, kamen spät oder gar nicht. Da Apple an jedem App-Verkauf mitverdient, ist das ein Interessenkonflikt. Der Digital Markets Act der EU zwingt Apple seit 2024 dazu, in Europa auch andere Engines zuzulassen.
Für Entwickler bedeutet WebKit zusätzliche Arbeit. Eine Seite, die in Chrome sauber aussieht, kann in Safari verrutschen. Wer eine Website baut, muss sie deshalb in beiden Engines testen. Manche vergleichen die Rolle von WebKit heute mit der des alten Internet Explorer: eine Engine, auf die man Rücksicht nehmen muss, ob man will oder nicht.
Vom Quelltext zum fertigen Bild
WebKit bekommt vom Server eine Textdatei in der Sprache HTML. Darin steht die Struktur der Seite: Überschriften, Absätze, Bilder, Links. Die Engine liest diesen Text und baut daraus einen Baum aus verschachtelten Elementen. Ein Absatz liegt zum Beispiel innerhalb eines Textbereichs, der wiederum im Seitenkörper liegt. Dieser Baum ist die innere Landkarte der Seite.
Danach kommen die Gestaltungsregeln dazu, geschrieben in der Sprache CSS. Sie legen Farben, Schriftgrößen und Abstände fest. WebKit rechnet nun für jedes Element aus, wie groß es ist und an welcher Stelle es steht. Dieser Schritt heißt Layout. Erst danach werden die Pixel tatsächlich gezeichnet, meist mithilfe der Grafikkarte.
Ein dritter Teil ist JavaScript, die Programmiersprache des Webs. Sie sorgt dafür, dass sich Seiten bewegen und auf Klicks reagieren. WebKit bringt dafür einen eigenen Übersetzer mit, JavaScriptCore. Läuft ein Programmstück häufig, übersetzt er es in schnelleren Maschinencode. Das ist der Grund, warum moderne Web-Anwendungen fast so flüssig laufen wie installierte Programme.
Wo WebKit überall mitläuft
Am offensichtlichsten begegnet man WebKit in Safari. Weniger offensichtlich ist, dass viele Apps eine kleine Browser-Ansicht enthalten. Öffnest du einen Link in Instagram oder in einer Banking-App, bleibt die Seite oft in der App. Auf dem iPhone rendert diese eingebettete Ansicht ebenfalls WebKit. Auch die Anzeige von PDFs oder Hilfeseiten läuft häufig darüber.
In Nachrichtenmeldungen taucht WebKit meist in zwei Zusammenhängen auf. Der eine sind Sicherheitslücken: Weil die Engine fremden Code aus dem Internet verarbeitet, ist sie ein beliebtes Ziel für Angriffe. Apple veröffentlicht regelmäßig Notfall-Updates für WebKit-Fehler. Der zweite Zusammenhang ist die Regulierung, also der Streit mit der EU-Kommission über Apples Vorgaben für Browser.
Zur Einordnung hilft ein Blick auf die Konkurrenz. Blink ist die Engine von Google Chrome und steckt auch in Edge und Opera. Gecko ist die Engine von Firefox. Blink entstand übrigens einmal aus WebKit, Google spaltete es 2013 ab. Die beiden sind also entfernte Verwandte, haben sich seither aber deutlich auseinanderentwickelt.