Tach!
Umso verwunderter war ich dann, als ich meinen Browser testweise einen manipulierten Header-User-Agent senden ließ (Erweiterung "Modify Headers" unter Google Chrome); die Header-Variante zeigte brav den "gefälschten" Header an, während sich die "navigator.userAgent"-Ausgabe nicht verändert hatte, also immer noch den Standard-User-Agent meines Browsers [der da wäre: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1] anzeigte.
Muss ich daraus den Schluss ziehen, dass die beiden User-Agents grundsätzlich verschiedene Informationen liefern?
Nein, ich ziehe daraus nur den Schluss, dass diese Erweiterung nur die HTTP-Headers und nicht den von Javascript gelieferten Wert oder gar generell den Useragent im Browser ändert. Ganz zu schweigen davon, daraus ein browserübergreifendem Verhalten ableiten zu wollen.
Wäre es dann nicht klüger, immer nur navigator.userAgent abzufragen, da dabei anscheinend stets der "richtige" User-Agent zurückgegeben wird, auch wenn ein manipulierter Header-User-Agent gesendet wird?
Niemand garantiert dir, dass der Useragent nicht auf die eine oder andere Art gefälscht ist. Es wäre klüger, sich gar nicht darauf zu verlassen.
dedlfix.