Skip to content

Categories:

Erkennung von Mobile Devices

Der Bereich der Mobile Devices gilt als der nächste große Trend in der Webwelt, immer mehr Firmen bieten spezielle Webseiten für mobile Endgeräte an. Es mangelt aber häufig an der Erkennung von mobilen Endgeräten und der Weiterleitung auf entsprechende Angebote.

Schön wäre es, wenn man eine x-beliebige Seite aufruft diese erkennt automatisiert welches Device auf die Seite zugreift und entscheidet dann selbstständig, ob die mobile Webseitenversion oder die „normale” Version angezeigt wird. Bei einigen Seiten wie etwa Financial Times Deutschland klappt die Weiterleitung schon relativ gut, bin ich mit einem Mobile Device online wird automatisch von ftd.de auf m.ftd.de weitergeleitet.

Stellt sich also die Frage wie man das Problem am besten angeht bzw. löst, wir kann erkannt werden, ob der Client ein PC, Handy oder Smartphone ist, vielleicht sogar ein schickes iPhone?

Alles kein Hexenwerk! Das Http-Protokoll sieht das Feld User-Agent im Header vor. Hier sollte man genau diese Information hinterlegen. Hier ein Auszug aus der Http Spezifikation:

The User-Agent request-header field contains information about the user agent originating the request. This is for statistical purposes, the tracing of protocol violations, and automated recognition of user agents for the sake of tailoring responses to avoid particular user agent limitations. User agents SHOULD include this field with requests. The field can contain multiple product tokens (section 3.8) and comments identifying the agent and any subproducts which form a significant part of the user agent. By convention, the product tokens are listed in order of their significance for identifying the application.

Klingt relativ einfach, ist es auch. Welche Informationen stecken im User-Agent-Headerfeld? Folgende Auflistung gibt einen kleinen Überblick über die User-Agent-Angaben von gewöhnlichen Webbrowsern, neben der Browserversion stehen häufig auch noch Angaben zum Betriebssystem etc. im Feld.

  • Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6c
  • Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
  • Mozilla/4.77 [en] (X11; I; IRIX;64 6.5 IP30)
  • Mozilla/5.0 (compatible; Konqueror/3.2; Linux 2.6.2) (KHTML, like Gecko)
  • Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8
  • Mozilla/5.0 (OS/2; U; Warp 4.5; de; rv:1.8.1.11) Gecko/20071129 PmWFx/2.0.0.11
  • Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13
  • Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.3) Gecko/20040924 Epiphany/1.4.4 (Ubuntu)
  • Opera/9.10 (Windows NT 5.0; U; de)

Im Weiteren schauen wir uns das gleiche Feld bei mobilen Endgeräten an:

  • LG/KU800/v1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
  • MOT-E1000/80.28.08I MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
  • Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
  • NokiaN73-1/2.0626.0.0.2 S60/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
  • SHARP-TQ-GX30i/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6.c.1.104 (GUI)
  • SIE-SL65/25 UP.Browser/7.0.0.1.c.3 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
  • SonyEricssonT68/R201A

In diesem User-Agent-Feld stecken also genau die Informationen, die wir für eine Erkennung benötigen. Es gibt jetzt verschiedene Wege zu identifizieren, ob es sich um ein Mobile Device handelt. Eine Variante wäre es bspw. den User-Agent-String mit regulären Ausdrücken nach bestimmten Attributen zu durchsuchen, mit ein bisschen Aufwand kommt man auf diesem Wege relativ schnell an eine gute Erkennungsquote.

Es geht aber auch noch ein ganzes Stück smarter. Von der FOSS (Free and Open Source Software) gibt es die  WURFL-Datei (Wireless Universal Resource File)  die uns ein ganzes Stück Arbeit abnimmt. Bei der WURFL-Datei handelt es sich um ein XML-Dokument mit den Spezifikationen für eine hohe Anzahl mobiler Endgeräte, die Liste beinhaltet eine große Anzahl von Device spezifischen Attributen wie Bildschirmgröße, Farbtiefe, Videoformate…

Man kann also nicht nur das Device erkennen, sondern auch feststellen welche spezifischen Attribute das Endgerät aufweist. Für viele gängige Programmiersprachen gibt es Bibliotheken, die den Umgang mit der Datei abstrahieren und einen einfachen Zugriff gewährleisten. Nach der Installation der Bibliotheken ist die Überprüfung, ob es sich um ein mobiles Endgerät handelt mit einem Funktionsaufruf erledigt. Da die WURFL-Datei laufend aktualisiert wird (letztes Update vom 22. Oktober 2008), ist gewährleistet dass auch neue Handys, PDAs und Smartphones zuverlässig erkannt werden.

Bleibt zu hoffen, dass in Zukunft viele Anbieter automatisch auf für mobile Endgeräte optimierte Versionen ihrer Webseiten weiterleiten, um den Anwendern so einen optimalen Zugriff auf das Angebot zu ermöglichen und die Kosten durch schnellere Ladezeiten zu senken.

Posted in Allgemein. Tagged with , , , , , , .

0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.