Zum Inhalt springen

Browserweiche

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 18. Dezember 2024 um 17:13 Uhr durch 2003:e1:1745:9300:b91d:65e0:5973:1b39 (Diskussion) (Probleme und Alternativen).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Browserweichen sind Techniken, um Unterschiede in der Darstellung von Webseiten in verschiedenen Webbrowsern zu umgehen, indem für unterschiedliche Browser unterschiedlicher Code angeboten wird.

Bei der Gestaltung von Webseiten ergeben sich dadurch Probleme, dass nicht alle Webbrowser gleichermaßen die standardisierten Webtechnologien HTML, CSS und JavaScript unterstützen. Insbesondere ältere Browser unterstützen diese nur unzureichend und interpretieren manches anders als vorgesehen. Beispielsweise verwendet der Internet Explorer vor Version 6 und auch noch in neueren Versionen im Quirks-Modus ein vom Standard abweichendes Box-Modell. Das hat zur Folge, dass unter Umständen Webseiten im einen Browser richtig dargestellt werden und in anderen falsch. Die Problematik betrifft aber auch moderne Browser, da bisher kein Browser alle Standards vollständig unterstützt. Um dennoch eine einheitliche Darstellung bzw. Funktionalität zu erreichen, werden von den Autoren der Webseiten teilweise Browserweichen (engl. browser sniffing, dt. Browser (er-)schnüffeln) benutzt, um die unterschiedlichen Browser unterschiedlichen Code interpretieren zu lassen.

Techniken

Browserweichen können serverseitig (für gewöhnlich durch Auslesen des User-Agent-Headers des Browsers) mittels SSI,<ref>Browserweichen mit SSI</ref> PHP<ref>Beispiel für Browsererkennung mit PHP</ref> oder Perl<ref><templatestyles src="Webarchiv/styles.css" />Browserweichen mit Perl (Memento vom 25. September 2008 im Internet Archive)</ref> und clientseitig mittels CSS,<ref name="css">Browserweichen mit CSS</ref> JavaScript (z. B. durch Testen auf das Vorhandensein bestimmter Objekte) oder (bei Weichen speziell für den Internet Explorer) Conditional Comments realisiert werden.

Aufgrund der Vielzahl an Browsern ist es nicht möglich, für jeden Browser und jede Version eine eigene Version einer Webseite anzubieten, daher können Browserweichen auch ganze Familien von Browsern (Browser mit Gecko-Engine, Internet Explorer mit Version >= 5 usw.) unterscheiden.<ref>The Ultimate JavaScript Client Sniffer, Version 3.03: Determining Browser Vendor, Version, and Operating System With JavaScript. Abgerufen am 16. Juli 2020 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

Eine weitere Methode sind sogenannte CSS-Hacks,<ref name="css" /> bei denen die fehlerhafte CSS-Interpretation von älteren Versionen der Browser gezielt genutzt wird, um diese zu speziellem Verhalten zu bringen. Von dieser Technik wird aber abgeraten, da sie zu Problemen mit neueren Versionen der Browser führen kann.

Probleme und Alternativen

Die Browsererkennung ist im Allgemeinen nicht zuverlässig, da die meisten Browser erlauben, einen benutzerdefinierten User-Agent-Header zu übertragen und JavaScript zu deaktivieren. Hinzu kommt das Problem, dass Browserweichen nur bedingt aufwärtskompatibel sind und daher perspektivisch zu Problemen führen, wenn neuere Browser auf den Markt kommen, die zwar die eigentlich gewünschten Features beherrschen, aber nicht von der Browserweiche erkannt werden. Daher setzt man heute von wenigen Ausnahmen abgesehen vor allem auf ein sog. Feature detection, um dann die Website entsprechend der Prinzipien des Responsive Webdesigns und der Graceful degradation bzw. des Progressive Enhancements anzupassen.<ref>Feature, Browser, and Form Factor Detection: It's Good for the Environment - HTML5 Rocks. In: www.html5rocks.com. Abgerufen am 14. April 2016.</ref>

Cloaking

Da Suchmaschinen für gewöhnlich einen eigenen User-Agent-Header benutzen, können Browserweichen auch dazu benutzt werden, in Suchmaschinen falsche Informationen über den Inhalt einer Webseite einzutragen (Search Engine Spoofing), z. B. um für mehr Werbeeinnahmen durch Bannerwerbung die Zugriffszahl zu erhöhen.

Einzelnachweise

<references />