www.wikidata.de-de.nina.az
Ein Data URL ist ein URI Schema das es ermoglicht Daten in HTML Quelltext so einzubetten als waren es externe Ressourcen Damit konnen die Daten beispielsweise fur eine Grafik innerhalb eines HTML Dokuments direkt im HTML Quelltext untergebracht werden statt sie wie sonst ublich aus einer Datei anzufordern Dies ist tendenziell einfacher als andere Einbettungsmethoden wie MIME mit cid oder mid URIs siehe dazu RFC 2111 1 Data URLs werden oft als Uniform Resource Locators bezeichnet obwohl sie keinen externen Inhalt referenzieren In Wirklichkeit sind sie Uniform Resource Identifiers Die Data URL wird im RFC 2397 2 der Internet Engineering Task Force IETF definiert Obwohl die IETF die Data URL Spezifikation 1998 veroffentlichte 2 wurde diese niemals formell zum Standard erhoben 3 Die Spezifikation von HTML 4 01 Dezember 1999 verweist jedoch auf die Definition des Data URL 4 und die meisten aktuellen Webbrowser unterstutzen Data URLs Inhaltsverzeichnis 1 Webbrowser Unterstutzung 2 Format 3 Vorteile 4 Nachteile 5 Beispiele 5 1 HTML 5 2 CSS 5 3 JavaScript 5 4 Einfugen in HTML oder CSS mit PHP 6 Konvertierungswerkzeuge 7 Siehe auch 8 Weblinks 9 EinzelnachweiseWebbrowser Unterstutzung BearbeitenAktuell unterstutzen folgende Webbrowser Data URLs Gecko basierte Browser wie Mozilla Firefox Opera Microsoft Edge KDE durch das KDE Input Output System Dies erlaubt dem KDE Browser Konqueror Data URLs zu unterstutzen Apple Safari obwohl Safaris HTML Rendering Engine WebKit auf KHTML basiert teilt Mac OS X nicht die KDE Input Output Architektur und die Implementation Apple Safari fur das iPhone Google Chrome Microsoft Internet Explorer bis einschliesslich Version 7 unterstutzt Data URLs nicht Internet Explorer 8 begrenzt die Unterstutzung aus Sicherheitsgrunden auf nicht navigierbaren Inhalt wie in lt img gt Tags und CSS Regeln damit in Data URLs eingebettetes JavaScript nicht trotz Scriptfilter wie sie bei Webmail Clients verwendet werden ausfuhrbar ist 5 Data URLs mussen kleiner als 32 Kilobytes sein Die Einschrankung wurde im IE9 aufgehoben 6 Format Bearbeitendata lt MIME Typ gt charset lt Zeichensatz gt base64 lt Daten gt Die Kodierung wird durch base64 gekennzeichnet Wenn vorhanden bedeutet das dass die nachfolgenden Daten Base64 kodiert sind Anderenfalls bei Fehlen des base64 Parameters werden die Daten durch URL Encoding kodiert Wenn die Angabe des MIME Typs fehlt wird als MIME Typ a href Plain text html title Plain text text plain a charset a href American Standard Code for Information Interchange html title American Standard Code for Information Interchange US ASCII a angenommen Bei abweichendem Zeichensatz kann als Abkurzung der MIME Typ bei Plain text weggelassen aber der Zeichensatz Parameter benutzt werden Vorteile BearbeitenEingebettete Daten benotigen keinen HTTP Request und sparen Traffic und Bandbreite wenn der Overhead der Kodierung kleiner ist als der HTTP Overhead Beispielsweise ist ein 600 Byte grosses Bild Base64 kodiert 800 Bytes gross wenn es unkomprimiert ubertragen wird HTML und CSS werden zumeist komprimiert ubertragen Wenn nun der HTTP Overhead mehr als 200 Bytes betragt ist die Data URL effizienter Fur das Transportieren von vielen kleinen Dateien kann die Data URL im Transport schneller sein TCP Verbindungen tendieren zu langsamem Start Wenn jede Datei eine neue TCP Verbindung benotigt ist die Transportgeschwindigkeit mehr durch die Laufzeit begrenzt als durch die verfugbare Bandbreite Das Benutzen von HTTP Keepalive verbessert die Situation beseitigt aber den Engpass nicht vollig Wenn die Webseite uber HTTPS aufgerufen wird erwarten die meisten Webbrowser dass alle Elemente dieser Webseite ebenfalls uber eine sichere Verbindung nachgeladen werden ansonsten wird der Benutzer benachrichtigt dass durch die Mischung von sicheren und unsicheren Elementen die Sicherheit reduziert ist HTTPS hat einen signifikant hoheren Overhead als normales HTTP somit erhoht die Einbettung von Webseitenelementen in Data URLs die Geschwindigkeit in diesem Fall und verhindert dass Sicherheitswarnungen ausgegeben werden Webbrowser sind gewohnlich so konfiguriert dass nur eine bestimmte Maximalanzahl an HTTP Verbindungen zum gleichen Webserver aufgebaut werden 7 somit sparen eingebettete Daten zu Gunsten anderer Inhalte HTTP Verbindungen ein Umgebungen mit eingeschranktem oder gesperrten Zugang zu externen Ressourcen konnen Inhalte einbetten wenn es nicht erlaubt oder unpraktisch ist diese extern zu referenzieren Zum Beispiel konnte ein erweitertes HTML Editorfeld ein eingefugtes Bild akzeptieren und es zu einer Data URL umwandeln um die Komplexitat der externen Referenzierung vor dem Benutzer zu verstecken Eine Multimediaseite kann als eine einzige Datei verwaltet werden Obwohl es selten passiert kann es vorkommen dass die Integritat der Dateien verletzt wird wenn sie hochgeladen werden Das kann Data URLs nur passieren wenn die Integritat der gesamten Seite verletzt ist Nachteile BearbeitenData URLs konnen nicht separat von den sie enthaltenden Dokumenten beispielsweise HTML oder CSS Dateien gecacht werden somit werden die Daten erneut heruntergeladen wenn je nach Einbettungsort entweder das Dokument neu geladen wird oder sich die CSS Datei an anderer Stelle geandert hat Die Data URL muss erneut kodiert und eingebettet werden wenn eine Anderung durchgefuhrt wurde Die Daten werden als einfacher Datenstrom eingebunden und viele Laufzeitumgebungen wie Webbrowser unterstutzen keine Containerformate wie multipart alternative oder message rfc822 um Daten grosserer Komplexitat wie Metadaten komprimierte Daten oder Content Negotiation zu speichern Base64 kodierte Daten sind um ein Drittel grosser als ihr binares Aquivalent Dieser Nachteil relativiert sich wenn der Server die Antwort mit Hilfe des Content Encoding HTTP Headers komprimiert Data URLs machen es Sicherheitssoftware schwerer Inhalte zu filtern 2 Webbrowser auf mobilen Geraten z B Smartphones haben in der Regel eine Funktion mit der das Laden von Bildern deaktiviert werden kann um Datenvolumen zu sparen Das direkte Einbetten in das Dokument verhindert die Nutzung einer solchen Funktion Beispiele BearbeitenHTML Bearbeiten nbsp Der rote Punkt aus dem Beispiel linksEin HTML Fragment welches das Bild eines kleinen roten Punktes einbindet lt img src data image png base64 iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs 9AAAAXUlEQVQY073M vQ2CUADE8R90tOzgFkzgMg7gLs7BCDYmhD0sTV7F2Vi8EF5nuOpyH3 rW4f hMvPDh3r4Stcwxxe4dbEh3co4ROedddXowmlyrYwtoj3sIRHc3S vgySGhd7 StmKAAAAAElFTkSuQmCC alt Roter Punkt gt Wie oben gezeigt kann die Data URL Whitespace zur besseren Lesbarkeit enthalten Der geneigte Leser kann den zwischen den Gansefusschen stehenden Text ausschneiden und in die Adresszeile eines unterstutzenden Browsers eingeben CSS Bearbeiten Eine CSS Regel welche ein Hintergrundbild einbindet ul checklist li complete margin left 20 px background url data image png base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD l2Z dAAAAM0lEQVR4nGP4 5 h 1 G 58ZDrAz3D McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA A6P9 AFGGFyjOXZtQAAAAAElFTkSuQmCC top left no repeat JavaScript Bearbeiten Ein JavaScript Beispiel welches ein neues eingebettetes Fenster offnet zum Beispiel fur eine Fussnote window open data text html charset utf 8 3C 21DOCTYPE 20html 3E 0D 0A 3Cht ml 20lang 3D 22en 22 3E 0D 0A 3Chead 3E 3Ctitle 3EEmbedded 20Window 3C 2F title 3E 3C 2Fhead 3E 0D 0A 3Cbody 3E 3Ch1 3E42 3C 2Fh1 3E 3C 2Fbody 3E 0 A 3C 2Fhtml 3E 0A 0D 0A blank height 300 width 400 Dieses Beispiel funktioniert nicht im Internet Explorer 8 Seine Sicherheitseinstellungen verbieten navigierbare Dateitypen in Data URLs 5 Einfugen in HTML oder CSS mit PHP Bearbeiten Weil Base64 kodierte Data URLs nicht menschenlesbar sind konnte ein Webseitenersteller kodierte Daten vorzugsweise mit einer Skriptsprache wie PHP einfugen Das hat den Vorteil dass bei einer Anderung der eingebundenen Datei der HTML Quelltext nicht geandert werden muss sowie binare Daten vom Text getrennt werden Der Nachteil ist eine hohere Belastung der Server CPU wenn kein serverseitiger Cache benutzt wird lt php function data uri file mime contents file get contents file base64 base64 encode contents return data mime base64 base64 gt lt img src lt php echo data uri elephant png image png gt alt Ein Elefant gt Die oben abgebildete Funktion kann auch auf CSS Daten angewendet werden lt php header Content type text css gt div menu background image url lt php echo data uri menu background png image png gt Client oder serverseitige Funktionen wie Conditional Comments oder User Agent Abfragen konnen benutzt werden um alternative URLs fur altere Browser wie den Internet Explorer bis Version 7 anzubieten Konvertierungswerkzeuge Bearbeitenalles2DataURL ist ein kostenloses Online Werkzeug fur die Umwandlung beliebiger Dateiformate bis zu einer Maximalgrosse von ca 3 MB in eine Data URL 8 DataURL2Text ist ein kostenloses Online Werkzeug fur die Ruckumwandlung einer beliebigen Data URL in die Originaldaten 9 Clipboard Observer ist ein kostenloses Java Werkzeug fur einfaches Konvertieren von PNG Dateien zu einer Data URL 10 Siehe auch BearbeitenEin alternatives Verfahren fur das Einbetten von Ressourcen ist MHTML meist benutzt in HTML E Mails Internet Media Type fur die benutzten DateitypenWeblinks BearbeitenRFC 2397 The data URL scheme 1998 englisch Uber Data URLs Mozilla Developer Center englisch Data URL Tests englisch Data URLs effektiv mit Cascading Style Sheets nutzen sveinbjorn org englisch Ubersicht zur Browserunterstutzung von Data URL caniuse comEinzelnachweise Bearbeiten RFC 2111 Content ID and Message ID Uniform Resource Locators Marz 1997 englisch a b c RFC 2397 The data URL scheme 1998 englisch Proposed Standards In Official Internet Protocol Standards Internet Society 4 Januar 2009 abgerufen am 4 Januar 2009 Dave Raggett Arnaud Le Hors Ian Jacobs Objects Images and Applets Rules for rendering objects In HTML 4 01 Specification W3C 24 Dezember 1999 abgerufen am 20 Marz 2008 a b data Protocol MSDN abgerufen am 5 Januar 2009 Eric Law IE9 Beta Minor Changes List In blogs msdn com Abgerufen am 28 Oktober 2010 RFC 2616 Hypertext Transfer Protocol HTTP 1 1 Juni 1999 Abschnitt 8 englisch alles2DataURL DataURL2Text Clipboard Observer Abgerufen von https de wikipedia org w index php title Data URL amp oldid 235558755