SELFHTML: Diverse technische Ergänzungen / Client-Identifikationen
Author: Redaktion SELFHTML, selfhtml81@selfhtml.org
Description: Wie sich Web-Browser, aber auch Such-Robots oder Agenten von Proxy-Servern beim Anfordern von Web-Seiten identifizieren.
Keywords: SELFHTML, Browser, Robots, Spider, Crawler, Netscape, Internet Explorer, Identifikation, Browser-Identifikation, Client, User Agent
Date: 2005-08-22T21:21:39+02:00

| # Client-Identifikationen
| Allgemeines zu Client-Identifikationen Client-Identifikationen von Netscape-Browsern Client-Identifikationen des Internet Explorers Client-Identifikationen anderer Browser Client-Identifikationen von Such-Robots und Proxy-Agenten

## Allgemeines zu Client-Identifikationen

Wenn ein Web-Browser oder ein Such-Robot oder der Agent eines Proxy-Servers bei einem Web-Server Daten anfordert, schickt er immer auch eine Zeichenkette mit, mit der er sich dem Web-Server gegenüber "namentlich vorstellt". Ein einheitliches oder standardisiertes Schema dafür ist in der Spezifikation zu HTTP 1.1 definiert worden. Nach der Ankündigung der Vorstellung eines "User-Agents" (das ist der Oberbegriff für die anfangs genannten Programme, die Daten anfordern können) wird wenigstens ein Hinweis auf das Produkt oder ein Kommentar übersandt. Nicht definiert ist die für die Praxis notwendige Unterscheidung zwischen verschiedenen Produktversionen oder -typen. Das ist bedauerlich. In der Praxis hat sich eine gewisse Regel herausgeschält: Produktname und Produktversion werden in dieser Reihenfolge und durch Schrägstrich getrennt dargestellt. Es halten sich allerdings nicht alle Browser an dieses Schema. Einige Browser-Typen geben sich als andere aus, und wieder andere erlauben es auch dem Anwender an der Programmoberfläche, eine beliebige Identifikation einzustellen. Wenn der Anwender dann seinen Namen oder irgendeinen Unsinn eingibt, meldet sich der Browser damit beim Server an.

Dennoch wird die Client-Identifikation an verschiedenen Stellen gespeichert und kann in manchen Situationen zu nützlichen Zwecken dienen:

- In JavaScript gibt es das navigator-Objekt, das es beispielsweise erlaubt, so genannte "Browserweichen" zu programmieren, um bestimmte JavaScript-Anweisungen nur auszuführen, wenn bestimmte Browser-Typen am Werk sind.
- Ein CGI-Script kann die CGI-Umgebungsvariable `HTTP_USER_AGENT` auslesen, um herauszufinden, von welcher Client-Software es aufgerufen wurde. Auch dabei kann die Information dazu genutzt werden, um bestimmte Anweisungen abhängig auszuführen oder nicht auszuführen.
- Bei Statistiken zu einem Web-Projekt gibt es in der Regel auch eine Statistiksorte, die Zugriffszahlen nach Browser-Typen sortiert aufschlüsselt. Grundlage dafür sind ebenfalls die Client-Identifikationen, die der Web-Server bei den Aufrufen erhalten hat.

## Client-Identifikationen von Netscape-Browsern

Netscape gibt sich seit jeher mit dem Namen Mozilla aus. Eindeutig erkennbar ist er daran allerdings überhaupt nicht, denn der Internet Explorer gibt sich beispielsweise ebenfalls als Mozilla aus. Die folgenden Beispiele zeigen einige typische Identifikationen, die jedoch nur für Netscape typisch sind.

### Beispiele:

Identifikation
`Mozilla/2.0(Macintosh;I;PPC)`
`Mozilla/2.0(Win16;I)`
`Mozilla/3.01Gold[de](Win16;I)`
`Mozilla/4.03 [en] (X11; I; Linux 2.0.30 i686)`
`Mozilla/4.01 [en] (Win95; I)`
`Mozilla/4.01 [en]C-CCK-MCD (WinNT; I)`
`Mozilla/4.01 [en]C-FedExIntl (Win95; I)`
`Mozilla/4.5 [en] (X11; I; SunOS 5.6 sun4d)`
`Mozilla/4.6 [en] (X11; I; FreeBSD 3.2-RELEASE i386)`
`Mozilla/5.0 [en] (WinNT; I)`
`Mozilla/5.0b1 [en] (X11; N; Linux 2.2.0 alpha; Nav)`

### Erläuterung:

Das grundsätzliche Schema für Produktname und Version wird also eingehalten - die Identifikation startet immer mit `Mozilla/[Versionsangabe]`. Damit ist er allerdings noch nicht von vielen anderen Browsern unterscheidbar! Die Versionsangabe kann auch Zusatzangaben enthalten wie `5.0b1` (was eigentlich für Version 6.0 steht, da Version 5.0 übersprungen wurde, und `b1` steht für "Betaversion 1"). Auch andere Zusätze wie `3.01Gold` können vorkommen (`Gold` stand seinerzeit für die erste Variante des Netscape-Browsers, die zugleich WYSIWYG-Editieren erlaubte, also ein Vorläufer des Netscape Composer).

Hinter der Versionsangabe kann in eckigen Klammern ein Sprachenkürzel folgen, das die Sprache der Browser-Bedienelemente angibt. Das Sprachenkürzel ist bei neueren Versionen zwar Standard, aber es kann auch mal fehlen.

In runden Klammern folgen anschließend weitere Informationen. Mehrere davon werden durch Semikolon voneinander getrennt. Zunächst wird die verwendete Plattform genannt. Dabei sind Abkürzungen wie `Win95`, `Win98` oder `WinNT` für entsprechende Windows-Versionen möglich. Bei allen Unix-basierten Systemen wird an der Stelle meistens `X11` angegeben, was für X-Windows steht, und bei Mac-Rechnern `Macintosh`.

An zweiter Stelle innerhalb der runden Klammern folgt ein Großbuchstabe, der das Sicherheits-Level des Browsers bezeichnet (Länge von Schlüsseln). Ein `U` steht für "strong security (US)" (diese Version wurde früher aufgrund von Exportbestimmungen nur in den USA vertrieben), ein `I` für "weak security (international)" (das war die erlaubte Export-Version mit schwacher Verschlüsselung). Das `N` steht für "no security".

Hinter dem Sicherheitskennzeichen folgen dann noch beschreibende Informationen zum verwendeten Prozessortyp und/oder nähere Angaben zum Betriebssystem.

Alle Teile können Leerzeichen dazwischen haben, aber zwingend ist dies nicht.

## Client-Identifikationen des Internet Explorers

Der Internet Explorer gibt sich in seiner Browser-Identifikation deutlich weniger selbstbewusst als sonst. Er versteckt sich stets hinter dem gleichen Codenamen wie die Netscape-Browser, gibt zunächst eine Versionsnummer an, die sich auf Netscape bezieht und rückt dann, durch das Schlüsselwort `compatible` eingeleitet, mit den Informationen über sich selber heraus. Die folgenden Beispiele zeigen einige typische Identifikationen des Internet Explorers.

### Beispiele:

Identifikation
`Mozilla/1.22(compatible;MSIE2.01;WindowsNT)`
`Mozilla/2.0(compatible;MSIE3.0;AK;Windows95)`
`Mozilla/2.0(compatible;MSIE3.02;Updatea;AK;AOL3.0;Windows95)`
`Mozilla/4.0 (compatible; MSIE 4.0; Windows 95;BPH01)`
`Mozilla/4.0 (compatible; MSIE 4.0; Mac_68000)`
`Mozilla/4.0 (compatible; MSIE 4.0; Mac_PowerPC; e412354MCICDV4.0)`
`Mozilla/4.0 (compatible; MSIE 4.0b2; Windows 95)`
`Mozilla/4.0 (compatible; MSIE 5.0; AOL 4.0; Windows 95)`
`Mozilla/4.0 (compatible; MSIE 5.0; MSN 2.5; Windows 98)`
`Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)`

### Erläuterung:

Das grundsätzliche Schema für Produktname und Version folgt dem von Netscape und wird also eingehalten - die Identifikation startet immer mit `Mozilla/[Versionsangabe]`. Die Versionsangabe dahinter bedeutet, zu welcher Netscape-Browser-Version sich der ausgewiesene Internet Explorer voll kompatibel hält. Das ist natürlich immer mit gewissen Vorbehalten zu genießen, denn ein Internet Explorer hat beispielsweise zu keinem Zeitpunkt je das `layer`-Element in HTML interpretiert, also ist die Behauptung der Kompatibilität zu Netscape 4.0 nicht unbedingt haltbar. Von daher bringt die Versionsangabe hinter dem `Mozilla/` beim Internet Explorer keine wirkliche Erkenntnis.

Seine eigentliche Identität verrät der Internet Explorer erst in den runden Klammern. Diese enthalten normalerweise mehrere Angaben, durch Semikolon getrennt. Der erste Teil ist stets das Schlüsselwort `compatible`. Dahinter folgen die vier Großbuchstaben `MSIE`, die eigentlich den Bezug zum Internet Explorer herstellen. Dahinter folgt die genaue Versionsangabe.

Alle weiteren Angaben können differieren und eine unterschiedliche Reihenfolge haben. Bei Betriebssystembezeichnungen fällt auf, dass `Windows` durchweg ausgeschrieben ist, während Macintosh-Versionen des Internet Explorers sich üblicherweise mit `Mac` plus Unterstrich plus nähere Bezeichnung ausgeben. Wenn es sich um eine Browser-Distribution eines Online-Dienstes wie AOL oder MSN handelt, wird dies in einem Zusatzeintrag wie `AOL 4.0` verzeichnet.

Alle Teile können Leerzeichen dazwischen haben, aber zwingend ist dies nicht, besonders bei älteren Versionen nicht.

## Client-Identifikationen anderer Browser

Die folgenden Beispiele zeigen typische Identifikationen einiger anderer Browser-Typen.

### Beispiele:

Identifikation
`Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/125.5.6 (KHTML, like Gecko) Safari/125.12`
`Mozilla/1.2 (Opera/2.02)`
`Mozilla/3.0 (compatible; Opera/3.0; Windows 95) 3.51`
`Mozilla/3.0 (Windows 4.10;US) Opera 3.60 [en]`
`DosLynx/0.8a`
`Lynx 2.4-FM`
`Lynx 2.5 libwww-FM/2.14`
`Lynx 2.9 (compatible Interactive Tcl/Tk News Ticker v0.06)`
`Lynx/2-4-2 MU-MODS`
`Lynx_ALynx/2.4 AmigaPort/1.29`
`amaya/V2.0a libwww/5.2.1`
`AIR_Mosaic(16bit)/v3.10.198.18`
`IBM WebExplorer DLL /v1.1`
`IBrowse/1.2 (AmigaOS 3.1)`
`iCab/Pre1.4 (Macintosh; I; PPC)`

### Erläuterung:

Die Beispiele zeigen, wie uneinheitlich die unterschiedlichen Browser-Typen sich identifizieren, was die Auswertung nicht gerade erleichtert. In der Regel hilft beim Analysieren beispielsweise mit einem Script nur, im ersten Schritt nach einschlägigen Schlüsselwörtern wie `Opera`, `Mosaic`, `amaya`, `Lynx` oder `ICab` zu suchen. Im zweiten Schritt können Sie dann versuchen, durch Suchen nach Teilausdrücken wie `Win`, `Mac`, `Amiga` usw. das Betriebssystem herauszufinden.

## Client-Identifikationen von Such-Robots und Proxy-Agenten

Es gibt kein Patentrezept, um "menschliche Seitenbesucher" von Software-Programmen zu unterscheiden, die beim Aufrufen der Web-Seiten im Batchbetrieb arbeiten und beispielsweise die Daten für ihre Suchmaschine indizieren oder Dateien an einen Proxy-Rechner übertragen. Die folgenden Beispiele zeigen ein paar typische Identifikationen solcher Programme.

Identifikation
`Eule Robot v3.00 (www.eule.de)`
`FAST-WebCrawler/0.3 (crawler@fast.no)`
`Googlebot/2.1 (+http://www.google.com/bot.html)`
`JCrawler/0.3 (robot; webmaster@netimages.com)`
`Netscape-Proxy/3.52 (Batch update)`
`Openfind Robot/1.1A2`
`W3CRobot/4.0D`
`WebCrawler/2.0`
`Lycos_Spider_(T-Rex)/3.0`
`Aladin/3.324`
`taz.northernlight.com Gulliver/1.3`
`Openfind Robot/1.1A2`
`KIT-Fireball/2.0`
`URL-Minder/2.4.5`

### Erläuterung:

Bei Suchmaschinen-Robots gibt es zumindest einige Anhaltspunkte, nach denen sich eine Identifikationszeichenkette durchsuchen lässt. Solche Robots identifizieren sich oft mit Schlüsselwörtern wie `Robot`, `Spider` oder `Crawler`. Viele von ihnen tragen im Namen auch den Namen des zugehörigen Suchdienstes. In den obigen Beispielen sind etwa `Google`, `Fireball`, `Lycos`, `Eule`, `Northernlight` und `Aladin` erkennbar. Generell sind Robots und auch Agenten von Proxy-Servern häufig daran erkennbar, dass sie bei der Identifikation einen Domain-Namen, einen URI oder eine E-Mail-Adresse angeben.

| robots.txt - Robots kontrollieren
| Sprachenkürzel

© 2007 Impressum