{"id":15779,"date":"2026-11-14T13:00:00","date_gmt":"2026-11-14T12:00:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=15779"},"modified":"2026-10-26T12:18:52","modified_gmt":"2026-10-26T11:18:52","slug":"welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/","title":{"rendered":"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen"},"content":{"rendered":"<p>Ein Server kann unter derselben Bildadresse unterschiedliche Formate liefern. Der Anfrageheader <code>Accept<\/code> nennt bevorzugte Medientypen; der Antwortheader <code>Vary<\/code> hilft Zwischenspeichern bei der Auswahl einer passenden gespeicherten Antwort. Ein anderer Inhaltstyp oder ein fehlender Header beweist allerdings noch keine fehlerhafte Bildanzeige.<\/p>\n<p>Eine historische Pr\u00fcfung von zwanzig Startseiten am 6. September 2026 erfasste 1.345 Bildeintr\u00e4ge und untersuchte 76 Bildadressen. Die gespeicherten Ergebnisse bleiben n\u00fctzlich, doch die urspr\u00fcngliche Auswertung \u00fcbersch\u00e4tzte das Verfahren: Die Implementierung verglich eine GET- mit einer HEAD-Anfrage, keine zwei ansonsten gleichen GET-Anfragen. GET fordert neben den Headern auch den Antwortinhalt an; HEAD fordert die Header ohne Antwortinhalt an. Deshalb werden gespeicherte Werte und Aussagen, die einen neuen kontrollierten Test erfordern, hier getrennt.<\/p>\n<figure class=\"lw-diagram\"><img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/dia-15779-imageaccept-20261025.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Historische Stichprobe: zwanzig Seiten, 76 Bildadressen, vierzehn Medientyp-Unterschiede beim GET\/HEAD-Vergleich, 783 unvollst\u00e4ndige Ma\u00dfpaare.\"><figcaption>Gespeicherte Ergebnisse vom 6. September 2026; unterschiedliche Methoden verhindern einen isolierten Accept-Nachweis.<\/figcaption><\/figure>\n<h2>Was die historische Stichprobe tats\u00e4chlich erfasste<\/h2>\n<p>Bei vierzehn der 76 Paare unterschieden sich die deklarierten Medientypen. Sechs Proben der New York Times meldeten WebP gegen\u00fcber JPEG mit <code>Vary: Accept<\/code>. Sechs Zeit-Proben meldeten WebP gegen\u00fcber JPEG ohne gespeicherten Vary-Wert; zwei Onet-Proben AVIF gegen\u00fcber PNG ebenfalls ohne diesen Wert. Bei den \u00fcbrigen 62 Paaren war der deklarierte Medientyp gleich. Identische Dateiinhalte sind damit nicht nachgewiesen.<\/p>\n<p>Die Anfragen unterschieden sich sowohl in der Methode als auch in Accept. Zudem verwendete die alternative Anfrage <code>Accept: image\/*<\/code>. Dieser Platzhalter erlaubt auch AVIF und WebP und bildet deshalb keinen Browser ohne diese Formate ab. Die vierzehn Unterschiede liefern Anhaltspunkte f\u00fcr eine Nachpr\u00fcfung, aber keinen isolierten Nachweis einer Accept-basierten Aushandlung. Der Datensatz enth\u00e4lt Zusammenfassungen, keine beiden Antwortdateien samt vollst\u00e4ndigen Rohheadern.<\/p>\n<h2>Ein aussagekr\u00e4ftigerer Vergleich<\/h2>\n<p>Ein kontrollierter Vergleich verwendet zweimal GET, dieselbe Adresse und bis auf Accept dieselben Optionen. Eine Basisanfrage kann AVIF und WebP mit <code>q=0<\/code> ausdr\u00fccklich ausschlie\u00dfen; <code>image\/*<\/code> schlie\u00dft keines dieser Formate aus. Accept bleibt eine Anforderung an die Antwort. Ob die tats\u00e4chlich gelieferte Datei dazu passt, muss gepr\u00fcft werden.<\/p>\n<p>Zur Auswertung geh\u00f6ren endg\u00fcltige URL, Status, deklarierter Medientyp, tats\u00e4chliches Dateiformat, Bytezahl, Hashwert des Inhalts und vollst\u00e4ndige Antwortheader. Gleicher Typ und gleiche L\u00e4nge beweisen keine gleichen Bytes. Abweichende Bytes k\u00f6nnen auch durch ein ver\u00e4ndertes Motiv, CDN-Verhalten oder unterschiedliche Abrufzeitpunkte entstehen. Wiederholungen und gegebenenfalls die Serverkonfiguration liefern belastbarere Hinweise auf die Ursache.<\/p>\n<h2>Vary steuert die Wiederverwendung<\/h2>\n<p>Wird eine zwischenspeicherbare Antwort anhand von Accept ausgew\u00e4hlt, teilt <code>Vary: Accept<\/code> normalerweise dieses Auswahlkriterium mit. Ein Cache darf die gespeicherte Antwort nicht einfach f\u00fcr eine Anfrage mit unpassendem Accept-Wert wiederverwenden. HTTP erlaubt beim Vergleich eine Normalisierung; eine eigene Kopie f\u00fcr jede unterschiedliche Schreibweise ist keine unvermeidliche Vorgabe.<\/p>\n<p>Ob Speicherung und Wiederverwendung zul\u00e4ssig sind, h\u00e4ngt zus\u00e4tzlich von Cache-Vorgaben, Aktualit\u00e4t und Konfiguration ab. Fehlendes Vary kann eine falsche Wiederverwendung beg\u00fcnstigen. Ein tats\u00e4chlich fehlerhafter CDN-Abruf wurde mit der historischen Probe jedoch nicht nachgewiesen. Vorgaben wie <code>no-store<\/code> und ein bewusst konfigurierter Cache-Schl\u00fcssel ver\u00e4ndern die Bewertung. <code>Vary: *<\/code> verhindert eine unmittelbare Wiederverwendung ohne Validierung.<\/p>\n<p>Die Pr\u00fcfung muss vollst\u00e4ndige Headernamen vergleichen. <code>Vary: Accept-Encoding<\/code> betrifft die Inhaltskodierung und bedeutet etwas anderes als <code>Vary: Accept<\/code>. Eine blo\u00dfe Suche nach der Zeichenfolge <code>accept<\/code> kann beide F\u00e4lle verwechseln.<\/p>\n<h2>Eine belegbare Lehre aus dem Pr\u00fcfer<\/h2>\n<p>Eine \u00e4ltere lokale Implementierung \u00fcbergab den gew\u00fcnschten Header als Option <code>accept<\/code>. Die gemeinsame Abrufbibliothek erwartet daf\u00fcr <code>kopfzeilen<\/code>. Der Vergleich dieser Quelldateien best\u00e4tigt die Schnittstellenverwechslung: \u00dcber die falsche Option wurde der gew\u00fcnschte Header nicht weitergereicht. Ein Test muss deshalb neben simulierten Antworten auch die ausgehende Anfrage untersuchen. Gleiche Antworten allein schlie\u00dfen Aushandlung nicht aus.<\/p>\n<h2>Ma\u00dfe, Ladeverhalten und Alternativtexte<\/h2>\n<p>Die gespeicherte Markup-Auswertung z\u00e4hlt 783 von 1.345 Bildeintr\u00e4gen, bei denen mindestens eine g\u00fcltige numerische Ma\u00dfangabe fehlt. Das bedeutet nicht, dass jeweils beide Attribute fehlen. Sechs untersuchte Seiten enthielten f\u00fcr jedes erkannte Bild g\u00fcltige Ma\u00dfe. Bei Heise fehlte bei 423 von 426 Eintr\u00e4gen ein vollst\u00e4ndiges g\u00fcltiges Ma\u00dfpaar.<\/p>\n<p>Passende Werte f\u00fcr <code>width<\/code> und <code>height<\/code> helfen, das Seitenverh\u00e4ltnis vor dem Laden zu reservieren. Auch CSS kann geeigneten Platz freihalten. Fehlende Attribute sind daher ein Pr\u00fcfhinweis und keine gemessene Layoutverschiebung. Cumulative Layout Shift misst, wie stark sich sichtbare Inhalte unerwartet auf der Seite verschieben. Daf\u00fcr ist die tats\u00e4chlich dargestellte Seite zu beobachten.<\/p>\n<p>Auch die Zahl 762 beruht auf einer N\u00e4herung: Diese Eintr\u00e4ge stehen im Quelltext hinter den ersten drei Bildern und tragen kein <code>loading=\"lazy\"<\/code>. Sichtfeld und CSS-Layout wurden nicht gemessen. Die Quelltextreihenfolge beweist keine Unsichtbarkeit; ein wichtiges anfangs sichtbares Bild sollte nicht allein wegen der vierten Position im HTML verz\u00f6gert laden.<\/p>\n<p>Bei 27 Eintr\u00e4gen fehlt das alt-Attribut. Ein leeres <code>alt=\"\"<\/code> kann bei rein dekorativen Bildern oder bereits daneben vermittelten Bildinformationen angemessen sein. Entscheidend ist der Zweck im Kontext. Informative und funktionale Bilder ben\u00f6tigen eine passende zug\u00e4ngliche Alternative.<\/p>\n<h2>Die Grenzen der Stichprobe<\/h2>\n<p>Der Pr\u00fcfer w\u00e4hlte je Seite h\u00f6chstens sechs unterschiedliche Bildadressen aus erkanntem Markup. CSS-Hintergr\u00fcnde, per Skript erzeugte Bilder und tats\u00e4chlich vom Browser ausgew\u00e4hlte responsive Varianten wurden damit nicht vollst\u00e4ndig erfasst. Sechs Proben belegen auch nicht das Verhalten eines gesamten Auslieferdienstes.<\/p>\n<p>Drei Datens\u00e4tze enthalten keine erkannten Bilder: Stack Overflow antwortete mit 429, Allegro mit 403, und die gespeicherte Bund-Antwort lieferte keine Bildeintr\u00e4ge. Daraus folgt weder eine generell bildlose Seite noch ein Nachweis, dass zwei Seiten JavaScript ben\u00f6tigen. Ein verweigerter oder begrenzter Abruf beschreibt diesen Zugriffsversuch und keinen vollst\u00e4ndigen Browserbesuch.<\/p>\n<h2>Eine Bildadresse begrenzt vergleichen<\/h2>\n<p>Das folgende Bash-Beispiel ben\u00f6tigt curl ab Version 8.4, <code>file<\/code> und GNU coreutils. Die Beispieladresse ist ein Platzhalter. Beide Anfragen verwenden GET, Weiterleitungen bleiben bei HTTPS, und jeder Download ist auf 10 MiB und 30 Sekunden begrenzt. Die Ergebnisse bleiben zur Auswertung in einem neu angelegten tempor\u00e4ren Verzeichnis.<\/p>\n<figure style=\"--cbb-digits:2\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"bash\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Shell<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-bash\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\"><span class=\"cbb-comment\">#!\/usr\/bin\/env bash<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">set<\/span> <span class=\"cbb-attr\">-euo<\/span> pipefail\n<\/span><span class=\"cbb-line\">url=<span class=\"cbb-string\">'https:\/\/example.com\/image.png'<\/span>\n<\/span><span class=\"cbb-line\">out=<span class=\"cbb-variable\">$(<\/span>mktemp <span class=\"cbb-attr\">-d<\/span>)\n<\/span><span class=\"cbb-line\"><span class=\"cbb-function\">printf<\/span> <span class=\"cbb-string\">'Output: %s\\n'<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$out<\/span><span class=\"cbb-string\">\"<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">for<\/span> variant <span class=\"cbb-keyword\">in<\/span> modern baseline<span class=\"cbb-operator\">;<\/span> <span class=\"cbb-keyword\">do<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">if<\/span> &#91; <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$variant<\/span><span class=\"cbb-string\">\"<\/span> = modern &#93;<span class=\"cbb-operator\">;<\/span> <span class=\"cbb-keyword\">then<\/span>\n<\/span><span class=\"cbb-line\">    accept=<span class=\"cbb-string\">'image\/avif,image\/webp,image\/jpeg,image\/png;q=0.8,*\/*;q=0'<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">else<\/span>\n<\/span><span class=\"cbb-line\">    accept=<span class=\"cbb-string\">'image\/jpeg,image\/png,image\/avif;q=0,image\/webp;q=0,*\/*;q=0'<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">fi<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-function\">curl<\/span> <span class=\"cbb-attr\">--silent<\/span> <span class=\"cbb-attr\">--show-error<\/span> <span class=\"cbb-attr\">--fail<\/span> <span class=\"cbb-attr\">--location<\/span> \\\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-attr\">--proto<\/span> <span class=\"cbb-string\">'=https'<\/span> <span class=\"cbb-attr\">--proto-redir<\/span> <span class=\"cbb-string\">'=https'<\/span> <span class=\"cbb-attr\">--max-redirs<\/span> <span class=\"cbb-number\">3<\/span> \\\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-attr\">--connect-timeout<\/span> <span class=\"cbb-number\">10<\/span> <span class=\"cbb-attr\">--max-time<\/span> <span class=\"cbb-number\">30<\/span> <span class=\"cbb-attr\">--max-filesize<\/span> <span class=\"cbb-number\">10485760<\/span> \\\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-attr\">-H<\/span> <span class=\"cbb-string\">\"Accept: <\/span><span class=\"cbb-variable\">$accept<\/span><span class=\"cbb-string\">\"<\/span> <span class=\"cbb-attr\">-D<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$out<\/span><span class=\"cbb-string\">\/<\/span><span class=\"cbb-variable\">$variant<\/span><span class=\"cbb-string\">.headers\"<\/span> \\\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-attr\">-o<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$out<\/span><span class=\"cbb-string\">\/<\/span><span class=\"cbb-variable\">$variant<\/span><span class=\"cbb-string\">.body\"<\/span> \\\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-attr\">-w<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$variant<\/span><span class=\"cbb-string\"> status=%{http_code} type=%{content_type} url=%{url_effective}\\n\"<\/span> \\\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$url<\/span><span class=\"cbb-string\">\"<\/span>\n<\/span><span class=\"cbb-line\">  file <span class=\"cbb-attr\">--mime-type<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$out<\/span><span class=\"cbb-string\">\/<\/span><span class=\"cbb-variable\">$variant<\/span><span class=\"cbb-string\">.body\"<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-function\">wc<\/span> <span class=\"cbb-attr\">-c<\/span> &lt; <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$out<\/span><span class=\"cbb-string\">\/<\/span><span class=\"cbb-variable\">$variant<\/span><span class=\"cbb-string\">.body\"<\/span>\n<\/span><span class=\"cbb-line\">  sha256sum <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$out<\/span><span class=\"cbb-string\">\/<\/span><span class=\"cbb-variable\">$variant<\/span><span class=\"cbb-string\">.body\"<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">done<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-function\">printf<\/span> <span class=\"cbb-string\">'Full response headers: %s\/*.headers\\n'<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$out<\/span><span class=\"cbb-string\">\"<\/span><\/span><\/code><\/pre><\/figure>\n<p>Die Headerdateien enthalten auch Weiterleitungsantworten. Ma\u00dfgeblich sind Vary, Cache-Control und gegebenenfalls ETag der letzten Antwort sowie der ausgegebene Status und die endg\u00fcltige URL. <code>file<\/code> hilft bei der Formaterkennung, ersetzt aber keinen vollst\u00e4ndigen Bilddekodiertest. Bevor ein Unterschied allein Accept zugeschrieben wird, sind Wiederholungen erforderlich.<\/p>\n<p>Der <a href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/image-delivery-format-negotiation-auditor\/\">Bild-Auslieferungs- und Formataushandlungs-Pr\u00fcfer<\/a> bietet einen Einstieg f\u00fcr ganze Seiten. Die f\u00fcr diesen Artikel gepr\u00fcfte Implementierung verwendet weiterhin den beschriebenen GET\/HEAD-Vergleich und die N\u00e4herung anhand der Quelltextreihenfolge. Das Ergebnis entspricht deshalb nicht dem Zwei-GET-Beispiel. Die Vary-Pr\u00fcfung sucht zudem nach einer Teilzeichenfolge und kann Accept-Encoding falsch einordnen. Vor einer best\u00e4tigten Aussage zu Aushandlung oder Cache-Fehlern sind diese Grenzen zu ber\u00fccksichtigen.<\/p>\n<div class=\"lw-faq\"><h2>Fragen und Antworten<\/h2><h3>Sind moderne Formate unter getrennten Adressen m\u00f6glich?<\/h3><p>Ja. Ein picture-Element kann Quellen mit Typangaben und ein img als R\u00fcckfall anbieten. Bei der Auswahl ber\u00fccksichtigt der Browser auch Medienbedingungen, responsive Kandidaten und Darstellungsanforderungen. Liefert jede Adresse ein fest konfiguriertes Format, vermeidet die Auswahl zwischen diesen Adressen eine Accept-abh\u00e4ngige Formatvariation unter derselben URL. Andere Gr\u00fcnde f\u00fcr Vary k\u00f6nnen trotzdem bestehen.<\/p><h3>Braucht jedes Bild nach den ersten drei Lazy Loading?<\/h3><p>Nein. Entscheidend sind das gerenderte Layout und das anf\u00e4ngliche Sichtfeld. Bilder weiter unten k\u00f6nnen von verz\u00f6gertem Laden profitieren. Anfangs sichtbare Bilder, insbesondere das voraussichtliche Largest-Contentful-Paint-Bild, sollten nicht aufgrund einer Quelltextpositionsregel verz\u00f6gert werden.<\/p><\/div>\n<div class=\"lw-quellen\"><h2>Quellen<\/h2><ul><li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9110.html\" target=\"_blank\" rel=\"noopener noreferrer\">IETF RFC 9110: Bedeutung von HTTP \u2013 Accept und Vary<\/a><\/li><li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9111.html\" target=\"_blank\" rel=\"noopener noreferrer\">IETF RFC 9111: HTTP-Zwischenspeicherung \u2013 Abgleich von Vary<\/a><\/li><li><a href=\"https:\/\/web.dev\/articles\/optimize-cls\" target=\"_blank\" rel=\"noopener noreferrer\">Google web.dev: Unerwartete Layoutverschiebungen verringern<\/a><\/li><li><a href=\"https:\/\/web.dev\/articles\/browser-level-image-lazy-loading\" target=\"_blank\" rel=\"noopener noreferrer\">Google web.dev: Verz\u00f6gertes Laden von Bildern im Browser<\/a><\/li><li><a href=\"https:\/\/www.w3.org\/WAI\/tutorials\/images\/decorative\/\" target=\"_blank\" rel=\"noopener noreferrer\">W3C WAI: Dekorative Bilder<\/a><\/li><li><a href=\"https:\/\/html.spec.whatwg.org\/multipage\/images.html\" target=\"_blank\" rel=\"noopener noreferrer\">WHATWG HTML: Bilder und Quellenauswahl<\/a><\/li><li><a href=\"https:\/\/curl.se\/docs\/manpage.html\" target=\"_blank\" rel=\"noopener noreferrer\">curl: Befehlsreferenz<\/a><\/li><\/ul><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Eine historische Stichprobe von zwanzig Startseiten zeigt unterschiedliche Bildtypen, aber auch eine Grenze des GET\/HEAD-Vergleichs. Ein genaueres Verfahren pr\u00fcft zwei GET-Antworten, tats\u00e4chliche Dateien und Cache-Regeln getrennt.<\/p>\n","protected":false},"author":1,"featured_media":31103,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[156],"tags":[92235,92759,92292],"class_list":["post-15779","post","type-post","status-publish","format-standard","hentry","category-tutorials-de-web-entwicklung","tag-tutorial-de","tag-web-development-de","tag-web-performance-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Wie Aushandlung bei Bildern funktioniert, was vierzehn von sechsundsiebzig gepr\u00fcften Bildern taten und warum 783 von 1345 Bildern keine Ma\u00dfangaben tragen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Wie Aushandlung bei Bildern funktioniert, was vierzehn von sechsundsiebzig gepr\u00fcften Bildern taten und warum 783 von 1345 Bildern keine Ma\u00dfangaben tragen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-14T12:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15779.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen\",\"datePublished\":\"2026-11-14T12:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/\"},\"wordCount\":1186,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-15779.png\",\"keywords\":[\"Tutorial\",\"Web Development\",\"Web Performance\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/\",\"name\":\"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-15779.png\",\"datePublished\":\"2026-11-14T12:00:00+00:00\",\"description\":\"Wie Aushandlung bei Bildern funktioniert, was vierzehn von sechsundsiebzig gepr\u00fcften Bildern taten und warum 783 von 1345 Bildern keine Ma\u00dfangaben tragen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-15779.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-15779.png\",\"width\":1200,\"height\":630,\"caption\":\"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/tutorials-de-web-entwicklung\\\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen | Lukas Wojcik","description":"Wie Aushandlung bei Bildern funktioniert, was vierzehn von sechsundsiebzig gepr\u00fcften Bildern taten und warum 783 von 1345 Bildern keine Ma\u00dfangaben tragen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/","og_locale":"en_US","og_type":"article","og_title":"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen | Lukas Wojcik","og_description":"Wie Aushandlung bei Bildern funktioniert, was vierzehn von sechsundsiebzig gepr\u00fcften Bildern taten und warum 783 von 1345 Bildern keine Ma\u00dfangaben tragen.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-11-14T12:00:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15779.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen","datePublished":"2026-11-14T12:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/"},"wordCount":1186,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15779.png","keywords":["Tutorial","Web Development","Web Performance"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/","name":"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15779.png","datePublished":"2026-11-14T12:00:00+00:00","description":"Wie Aushandlung bei Bildern funktioniert, was vierzehn von sechsundsiebzig gepr\u00fcften Bildern taten und warum 783 von 1345 Bildern keine Ma\u00dfangaben tragen.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15779.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15779.png","width":1200,"height":630,"caption":"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/tutorials-de-web-entwicklung\/welches-bildformat-der-browser-erhalt-formatauswahl-und-cache-regeln-prufen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Welches Bildformat der Browser erh\u00e4lt: Formatauswahl und Cache-Regeln pr\u00fcfen"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/15779","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=15779"}],"version-history":[{"count":9,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/15779\/revisions"}],"predecessor-version":[{"id":33089,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/15779\/revisions\/33089"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/31103"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=15779"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=15779"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=15779"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}