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 User Agent? La chaîne utilisateur-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

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

Le champ d’en-tête de demande User-Agent contient des informations sur l’agent utilisateur à l’origine de la demande. Ceci est à des fins statistiques, le suivi des violations de protocole et la reconnaissance automatisée des agents utilisateurs afin de personnaliser les réponses pour éviter des limitations particulières de l’agent utilisateur. Les agents utilisateurs DEVRAIENT inclure ce champ avec les requêtes. Le champ peut contenir plusieurs jetons de produit (section 3.8) et des commentaires identifiant l’agent et tous les sous-produits constituant une partie significative de l’agent utilisateur. Par convention, les jetons de produit sont répertoriés par ordre d’importance pour l’identification de l’application.

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

Où le product est défini comme:

  product = token ["/" product-version] product-version = token token = 1* 

Et comment comme:

  comment = "(" *( ctext | quoted-pair | comment ) ")" ctext =  

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

Oui, voir: le site de mozilla , mais comme il a été mentionné précédemment. En gros, vous pouvez y mettre tout ce que vous voulez. Pour des raisons statistiques / analytiques, le plus important est que chaque navigateur / système d’exploitation soit normalisé.