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,[1] PHP[2] oder Perl[3] und clientseitig mittels CSS,[4] 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.[5]
Eine weitere Methode sind sogenannte CSS-Hacks,[4] 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.[6]
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
- ↑ Browserweichen mit SSI
- ↑ Beispiel für Browsererkennung mit PHP
- ↑ Browserweichen mit Perl ( vom 25. September 2008 im Internet Archive)
- ↑ a b Browserweichen mit CSS
- ↑ The Ultimate JavaScript Client Sniffer, Version 3.03: Determining Browser Vendor, Version, and Operating System With JavaScript. Abgerufen am 16. Juli 2020 (englisch).
- ↑ Feature, Browser, and Form Factor Detection: It's Good for the Environment - HTML5 Rocks. In: www.html5rocks.com. Abgerufen am 14. April 2016.