Mobile Browser serverseitig erkennen

Bei der Erweiterung einer bestehenden Webseite um eine mobile Version, muss der Zugriff durch ein mobiles Endgerät auch serverseitig erkannt werden. Bestehen eine mobile Webseite und eine klassische so kann die Erkennung des Mobiltelefons darüber entscheiden, welche Version ausgeliefert wird. Bei Techniken wie dem Responsive Webdesign, können bspw. optimierte Bilder ausgeliefert werden. Dieser Artikel beschäftigt sich mit den vorhandenen Technologien zu diesem Thema.

Greift ein Browser auf eine Webseite zu, sendet er auch immer einen kurze Identifikation an den Server – den User-Agent. Der User-Agent enthält Informationen über Betriebssystem, Browser und teilweise auch das Model bzw. Endgerät. Wenn der Aufbau des User-Agent-String auf dem iPhone interessiert, findet diesen bei Apple: Using the Safari User Agent String.

Je nach Anwendungsfall ergeben sich zwei grundsätzliche Herangehensweise – die Suche nach Schlüsselworten im User-Agent oder die Abfrage einer Datenbank. Wir haben uns jeweils zwei Vertreter der jeweiligen Technik angeschaut.

Suche nach Schlüsselworten im User-Agent

Die schnelle und einfach Lösung, wenn es nur darum geht zu erkennen, ob der Zugriff von einem Handy kommt oder nicht. Hierbei werden Schlüsselworte gesucht. Werden genügend Schlüsselworte erkannt gilt der mobile Browser als erkannt, falls nicht wird angenommen, dass es sich um einen klassischen Browser handelt. Im Netz finden sich zwei gute Lösungen, die sich vom Namen her nur bei der Top-Level-Domain unterscheiden: DetectMobileBrowsers.mobi und DetectMobileBrowsers.com.

DetectMobileBrowsers.mobi

Dieses kleine PHP-Skript stellt eine einfache Funktion dar, welche euch wahlweise sagt, ob es sich um ein mobiles Endgerät handelt oder den Browser direkt auf eine optimierte Webseite umleitet.

require_once('mobile_device_detect.php');
$mobile = mobile_device_detect();

Über diverse Parameter lassen sich bestimmt Endgeräte besonders behandeln. Der einzige Nachteil dabei ist, dass dieses Skript nur für nicht-kommerzielle Webseiten kostenlos ist. Kommerzielle Webseiten bezahlen 50 USD pro Jahr. Mehr Informationen gibt es auf DetectMobileBrowsers.mobi.

Vorteile: Schnell und einfach zu implementieren, Umleitung und Erkennung
Nachteile: Nur in PHP, Kosten

DetectMobileBrowsers.com

Im Gegensatz zu der Konkurrenz mit der .mobi-Endung, wird hier eine für alle kostenlose und freie Open-Source-Lösung angeboten. Einfach die URL für mobile und klassische Endgeräte angeben, die Skript-Sprache auswählen und schon könnt ihr ein fertiges Skript mit einer entsprechenden Umleitung in einer der 15 angebotenen Skriptsprachen herunterladen.

Leider kann das Skript nur zu einer bestimmten URL umleiten und bietet keine Funktionen, die direkt in eure eigenen Skripte eingebunden werden könnte. Mit ein wenig Bastelarbeit lässt sich hier aber schnell eine eigene Lösung bauen.

Vorteile: In 15 verschriedenen Skriptsprachen, kostenlos
Nachteil: Keine Erkennung nur Umleitung

Datenbanken für mobile User-Agents

Etwas komplizierter in der Anwendung aber umso besser im Ergebnis sind Lösungen, die auf Datenbanken setzten. Hierbei wird nicht nur erkannt, dass es sich um ein mobiles Endgerät handelt, sondern auch welche spezifischen Eigenschaften dieses besitzt. Beispiel dafür, welche Eigenschaften dokumentiert sind, finden sich in der Dokumentation von WURFL. Die Platzhirsche hier sind das eben erwähnte WURFL und DeviceAtlas von dotMobi.

WURFL

Das WURFL (Wireless Universal Resource File) ist die wohl bekannteste Datenbank für mobile Endgeräte. Die Fülle an Daten, die man zu einem Gerät bekommt, ist immens. Man findet alle relevanten Daten für die verschiedensten Mobiltelefon auf dem Markt. Von der Auflösung, über die Multimediaeigenschaften bis zum evtl. verbauten NFC-Chip.

WURFL wird unter zwei unterschiedlichen Lizenzen vertrieben. Die AGPL-Lizenz erlaubt die freie Nutzung unter der Bedingung, dass auch die damit erstellte Software frei zur Verfügung gestellt wird. Im Gegensatz zur normalen GPL-Lizenz muss die Software aber auch entsprechend verfügbar gemacht werden. Die zweite Lizenz ist eine kommerzielle. Gegen eine Gebühr kann WURFL auch in geschlossenen Projekten verwendet werden. Leider werden keine genauen Angaben zum Preis gemacht.

Vorteile: Kostenlos für AGPL-Projekte, Umfassende Datenbank
Nachteil: Kosten für geschlossene Projekte, Aufwendig in der Implementierung

DeviceAtlas

DeviceAtlas bietet eine ebenso umfangreiche Datenbank wie WURFL. Die Preise bei DeviceAtlas sind allerdings um einiges transparenter. Jedoch bietet DeviceAtlas keine Open Source-Lizenzen. Die Daten werden als Enterprise-Lizenz oder Cloud Service angeboten. Der Cloud Service beginnt bei 399 USD pro Jahr und 1 Mio. Abfragen pro Monat.

Vorteile: Leicht zu implementierender Cloud-Service
Nachteile: Hohe Kosten, keine Open Source-Lizenz

Auslaufmodel: UAProf

UAProf wurde ursprünglich zu WAP-Zeiten eingeführt. Dabei handelt es sich um eine URL, die der mobile Browser im Header bei einer Anfrage an den Server übermittelt. Der Server kann über diese URL Informationen über das Endgerät abrufen. UAProf wird aber von vielen modernen Smartphones (z.B. iPhone) nicht mehr unterstützt oder beinhaltet fehlerhafte Angaben. Somit stellt es keine wirkliche Alternative dar.

Fazit

Wer einfach nur wissen möchte, ob er es mit einem mobilen Endgerät zu tun hat, ist mit den DetectMobileBrowsers.com bestens bedient. Die Datenbank-Lösungen eignen sich bestens für große Projekte. Für die meisten kleinen Websites sind sie jedoch überdimensioniert.

Leider gibt es noch keine Lösung, die auf eine einfache und schnelle Art die wichtigsten Informationen wie z.B. die Auflösung zur Verfügung stellt.

Anzeigen von 3 Kommentaren
  • Daniel

    Die Auflösung lässt sich mit Javascript schon seit Anbeginn der Zeit auslesen, CSS3 bietet mittlerweile die Möglichkeit mit Code wie ‚@media screen and (max-width: 1024px)‘ Styles auf bestimmte Auflösungen anzuwenden. Bundles wie Twitter’s Bootstrap bieten vorgefertigte Klassen und Komponenten die sich der Auflösung anpassen. 2011 war das alles noch etwas spärlicher vertreten, aber sich nur auf den User-Agent zu verlassen ist nicht mehr aktuell 🙂

  • Nico

    Hi Sebastian,

    danke für den klasse Beitrag. Mich beschäftigt eine Frage. Gibt es keinen Service, der schon vorher greift? Folgendes Problem. Wir haben eine Website, eine Android App und eine iOS app. Ich möchte meinen Affiliate-Partnern gerne EINEN Link geben. Dieser soll dann erkennen mit welchem Devicer der User unterwegs ist und dementsprechend in die Stores oder auf die Website schicken. Ich weiß, dass wir das über einen interne Umleitung bewerkstelligen können. Aber die Kosten für den Traffic würde ich gerne sparen. Also kennst es einen Service, der so etwas anbietet? (Übernahme der Weiterleitung)

    Danke und Gruß,
    Nico

    • Annkathrin Seitz

      Hallo Nico,

      vielen Dank für Deinen Kommemtar.

      Uns ist keine Methode bekannt, die den Link so beeinflussen kann. Grundsätzlich ist es auch direkt über den Webserver möglich.
      Diese Variante verursacht eher wenig Serverload und Traffic.

      Ich hoffe wir konnten Dir damit weiterhelfen.

      Grüße
      Annkathrin

Hinterlasse einen Kommentar