web-dev-qa-db-fra.com

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 d'agent utilisateur de l'iPhone semble étrange ...

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

54
John Himmelman

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

Le champ d'en-tête de demande de l'agent utilisateur contient des informations sur l'agent utilisateur à l'origine de la demande. Ceci est à des fins statistiques, pour le traçage des violations de protocole et la reconnaissance automatisée des agents utilisateurs afin de personnaliser les réponses afin d'éviter des limitations particulières des agents utilisateurs. Les agents utilisateurs DEVRAIENT inclure ce champ avec 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 constituent une partie importante de l'agent utilisateur. Par convention, les jetons de produit sont répertoriés par ordre d'importance pour identifier l'application.

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

product est défini comme:

   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 ")">
68
Paulo Santos

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

10
tloflin

Oui, voir: site Web mozilla , mais comme cela a été mentionné précédemment. Fondamentalement, vous pouvez y mettre ce que vous voulez. À des fins statistiques/analytiques, la chose la plus importante est que chaque navigateur/système d'exploitation devrait avoir ce standardisé pour lui-même.

3
wlk