64 votes

Quel est le format standard de la chaîne User-Agent d'un navigateur ?

Existe-t-il un RFC, une norme officielle ou un modèle pour créer une chaîne d'agent utilisateur ? La chaîne user-agent de l'iphone semble étrange...

Mozilla/5.0 (iPhone ; U ; CPU iPhone OS 3_1_2 comme Mac OS X ; en-us) AppleWebKit/528.18 ( KHTML, comme Gecko ) Version/4.0 Mobile/7D11 Safari/528.16

1 votes

L'iPhone met sérieusement Mozilla/5.0 au début de son agent utilisateur ?

8 votes

@Slokun pourquoi cette surprise ? L'agent utilisateur d'IE commence par Mozilla/4.0 . N'oubliez pas que Mozilla a été l'un des premiers navigateurs à voir le jour, et que tous les autres incluent, à des degrés divers, des éléments de sa fondation.

1 votes

L'explication sur useragentstring.com est que cela ne devrait concerner que les navigateurs basés sur Gecko (Netscape et Firefox) mais la plupart des autres navigateurs l'incluent pour dire qu'ils sont compatibles avec Mozilla.

80voto

Paulo Santos Points 8148

El User-Agent fait partie de l'en-tête RFC7231 qui est une version améliorée de la RFC1945 où il est dit :

Le champ d'en-tête de demande User-Agent contient des informations sur l'agent utilisateur l'agent utilisateur à l'origine de la demande. Cette information est destinée à des fins statistiques, le traçage des violations de protocole, et la reconnaissance automatique des agents utilisateurs d'agents utilisateurs afin d'adapter les réponses pour éviter les limitations de certains l'agent utilisateur. Les agents utilisateurs DEVRAIENT inclure ce champ dans les demandes les demandes. Le champ peut contenir plusieurs jetons de produit (section 3.8) et des commentaires identifiant l'agent et tous les sous-produits qui forment un "si". partie importante de l'agent utilisateur. Par convention, les jetons de produit sont énumérés dans l'ordre de leur importance pour l'identification de l'application. l'application.

   User-Agent     = "User-Agent" ":" 1*( product | comment )

product est défini comme suit :

   product         = token ["/" product-version]
   product-version = token
   token           = 1*<any CHAR except CTLs or separators>

Et comment comme :

   comment        = "(" *( ctext | quoted-pair | comment ) ")"
   ctext          = <any TEXT excluding "(" and ")">

1 votes

Merci, c'est exactement ce que je cherchais. Il ne semble pas y avoir de format standard pour le champ de commentaires.

0 votes

Qu'est-ce que "quoted-pair" ?

0 votes

Quoted-pair = "\" CHAR

11voto

tloflin Points 2810

Ceci est spécifié dans RFC 1945 dans la section sur les en-têtes de demande. Il ne s'agit cependant pas d'un format très normalisé, et les agents utilisateurs ont tendance à y mettre ce qu'ils veulent.

0 votes

Merci. Ta réponse combinée à celle de Paulo constitue la réponse complète.

0 votes

Vous êtes les bienvenus ! Il semble que celui de Paulo soit plus complet et plus à jour, alors n'hésitez pas à le marquer comme accepté.

3voto

Wojtek Points 2756

Oui, tu vois : site web de mozilla mais comme il a été mentionné précédemment. En gros, vous pouvez y mettre ce que vous voulez. Pour des raisons de statistiques et d'analyse, le plus important est que chaque navigateur ou système d'exploitation dispose d'une norme en la matière.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X