Data-URLs: data:text/html;base64 und Co. erklärt

Data-URLs (data:-URIs)

Data-URI und data:text/html;base64 erklärt, mit Encoder | We.Inc

So funktionieren data:-URLs: die Syntax, base64 vs. Prozentkodierung, ein Drittel mehr Größe, warum data:text/html sich nicht in einem Tab öffnet, plus Encoder und Decoder.

Eine Data-URL trägt eine komplette Datei in der Adresse selbst: data:, ein optionaler Medientyp, ;base64, wenn die Bytes base64-kodiert sind, ein Komma und dann der Inhalt. data:text/html;base64,PGgxPkhpPC9oMT4= ist eine winzige Webseite. Base64 macht die Nutzdaten etwa ein Drittel größer, und Browser weigern sich, data:-Seiten als eigenen Tab auf oberster Ebene zu öffnen.

Aufbau einer Data-URL

Data-URLs sind praktisch für winzige Icons, CSS-Hintergründe, Test-Fixtures und generierte Downloads, und sie sorgen oft für Verwirrung, wenn jemand einen langen data:text/html-String in die Adressleiste einfügt und nichts passiert. Unten kannst du beliebigen Text in eine Data-URL kodieren, eine zurück dekodieren und genau sehen, was sie im Vergleich zum Original an Bytes kostet.

Häufige Fragen

Warum öffnet sich data:text/html;base64 nicht, wenn ich es in die Adressleiste einfüge?

Moderne Browser blockieren die Navigation zu data:-URLs auf oberster Ebene als Schutz vor Phishing, weil eine data-Seite jede beliebige Website imitieren und dabei ihre echte Herkunft verbergen könnte. Der Inhalt funktioniert weiterhin in einem iframe, einem img-Element oder als Download-Link.

Um wie viel vergrößert base64 eine Datei?

Um etwa ein Drittel. Base64 schreibt je drei Bytes als vier Zeichen, sodass ein 30-KB-Bild vor jeder Kompression zu etwa 40 KB Text wird. Der genaue Zuwachs hängt von Länge und Padding ab.

Wie wandle ich eine base64-Data-URL wieder in ein Bild um?

Füge sie in den Decoder auf dieser Seite ein, um sie anzusehen, oder setze sie direkt in ein img src. Um sie als Datei zu speichern, nutze unser Bild-zu-base64-Tool in umgekehrter Richtung oder rufe die Data-URL in JavaScript mit fetch ab und speichere den entstehenden Blob.

Gibt es eine Größenbegrenzung?

MDN nennt 512 MB für Chromium und Firefox und 2,048 MB für Safari. Lange vorher machen riesige Data-URLs HTML und CSS langsam beim Parsen und unmöglich zu cachen, also halte sie bei wenigen Kilobyte.

Welchen Origin hat eine Seite aus einer Data-URL?

Einen eigenen, opaken Origin, nicht den Origin der Seite, die sie erzeugt hat. Script in einem data:-iframe wird von der umgebenden Seite also als Fremder behandelt, nicht als Teil derselben Website.

Wann Inlining hilft und wann es schadet

Base64 oder Prozentkodierung?

Häufige Fehler

Data-URLs in echtem Code

SVG-Hintergrund in CSS, prozentkodiert

Einfache Anführungszeichen im SVG vermeiden Konflikte mit den doppelten Anführungszeichen um url(), und das # der Farbe wird als %23 geschrieben.

Ein winziges Inline-Bild

Dieselbe Idee funktioniert in einem img-Tag. Behalte den Alt-Text bei, wie bei jedem Bild.

Eine Data-URL aus einer Datei in JavaScript erzeugen

FileReader.readAsDataURL erzeugt den vollständigen data:-String samt Medientyp für eine Datei, die der Besucher auswählt.

Eine Data-URL wieder in einen Blob verwandeln

fetch versteht data:-URLs, das ist der kürzeste Weg, die Bytes wieder herauszuholen.

Data-URL-Encoder und -Decoder

Zu kodierender Inhalt

Medientyp

Base64-Data-URL

Prozentkodierte Data-URL

Original {n} Bytes, base64-URL {v} Zeichen

Prozentkodierte URL {v} Zeichen

In einem Sandbox-Frame dargestellt

Eine Data-URL dekodieren

Füge eine Data-URL ein

Medientyp: {v}

Kodierung: {v}

Dekodierte Größe: {n} Bytes

Das sieht nicht nach einer gültigen Data-URL aus. Sie braucht data:, einen optionalen Typ, ein Komma und die Daten.

Bildvorschau

Dekodierter Text

Kopieren

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap