reseaux:generalites:cbor

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
reseaux:generalites:cbor [2021/12/12 08:25] – [1. CBOR] philreseaux:generalites:cbor [2021/12/19 08:17] – [1.1 Type Entier Positif] phil
Ligne 2: Ligne 2:
  
 ===== La sérialisation (suite)===== ===== La sérialisation (suite)=====
-[Mise à jour le 20/11/2021]+[Mise à jour le 12/12/2021]
  
 ==== 1. CBOR ==== ==== 1. CBOR ====
Ligne 14: Ligne 14:
 Ainsi, en <html><a href="https://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange" target="_blank"><strong>ASCII</strong></a></html>, la valeur 123 est codée sur 3 octets (un octet par caractère) tandis qu'en binaire elle n'occuperait qu'un seul octet : 0111 1011.  Ainsi, en <html><a href="https://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange" target="_blank"><strong>ASCII</strong></a></html>, la valeur 123 est codée sur 3 octets (un octet par caractère) tandis qu'en binaire elle n'occuperait qu'un seul octet : 0111 1011. 
  
-<html><a href="https://www.bortzmeyer.org/7049.html" target="_blank">CBOR</a></html> (**Concise Binaire Object Representation**), défini dans le <html><a href="https://www.bortzmeyer.org/7049.html" target="_blank"><strong>RFC 7049</strong></a></html>, permet de représenter les structures de JSON mais suivant une représentation binaire.Si CBOR est complètement compatible avec JSON, il est possible de représenter d'autres types d'information très utiles dans l'internet des objets.+<html><a href="https://www.bortzmeyer.org/7049.html" target="_blank">CBOR</a></html> (**Concise Binaire Object Representation**), défini dans le <html><a href="https://www.bortzmeyer.org/7049.html" target="_blank"><strong>RFC 7049</strong></a></html>, permet de représenter les structures de JSONmais suivant une représentation binaire.Si CBOR est complètement compatible avec JSON, il est possible de représenter d'autres types d'information très utile dans l'internet des objets.
  
-La taille de l'information est réduite et le traitement simplifié. Il faut savoir un peu jongler avec la représentation binaire mais cela reste basique.+La taille de l'information est réduite et le traitement simplifié. Il faut savoir un peu jongler avec la représentation binairemais cela reste basique.
  
 CBOR définit **8 types** majeurs qui sont représentés par les **3 premiers bits d'une structure CBOR**. Ces types majeurs ont donc des valeurs comprises entre **0** et **7** (000 à 111 en binaire). \\ {{ :reseaux:generalites:cbor1.png?nolink& |}} CBOR définit **8 types** majeurs qui sont représentés par les **3 premiers bits d'une structure CBOR**. Ces types majeurs ont donc des valeurs comprises entre **0** et **7** (000 à 111 en binaire). \\ {{ :reseaux:generalites:cbor1.png?nolink& |}}
  
-Les cinq bits suivants contiennent soit une valeur soit une longueur indiquant combien d'octets sont nécessaires pour coder la valeur. CBOR offre ainsi des optimisations qui permettent de réduire la longueur totale de la structure des données +Les **cinq bits suivants** contiennent soit une **valeur** soit une **longueur** indiquant combien d'octets sont nécessaires pour coder la valeur. CBOR offre ainsi des optimisations qui permettent de réduire la longueur totale de la structure des données
  
 === 1.1 Type Entier Positif === === 1.1 Type Entier Positif ===
Ligne 49: Ligne 49:
 </code> </code>
  
-Le module cbor utilise comme pour JSON la méthode dumps pour sérialiser une structure interne de Python dans la représentation demandée. À l'inverse, la méthode loads sera utilisée pour importer une structure CBOR dans une représentation interne.+Le module cbor utilise comme pour JSON la méthode **dumps** pour sérialiser une structure interne de Python dans la représentation demandée. À l'inverse, la méthode **loads** sera utilisée pour **importer** une structure CBOR dans une représentation interne.
  
-La boucle permet d'avoir les multiples de 10 (variable v). Le print en ligne 7 permet d'aligner les données pour que l'affichage soit plus clair ; entre les accolades, le premier chiffre indique la position dans les arguments de format ; le second, après le :, le nombre de caractères. Par exemple, {1:30} indique l'argument v de format affiché sur 30 caractères.+La boucle permet d'avoir les multiples de 10 (variable v). Le print en ligne 7 permet d'aligner les données pour que l'affichage soit plus clair ; entre les accolades, le premier chiffre indique la position dans les arguments de format ; le second, après le :, le nombre de caractères.  
 + 
 +Par exemple, {1:30} indique l'argument v de format affiché sur 30 caractères.
  
 Le programme donne le résultat suivant : Le programme donne le résultat suivant :
Ligne 80: Ligne 82:
 La taille de la représentation s'adapte à la valeur. Ainsi, il n'est pas nécessaire de définir une taille fixe pour coder une donnée. La taille de la représentation s'adapte à la valeur. Ainsi, il n'est pas nécessaire de définir une taille fixe pour coder une donnée.
  
-On peut aussi noter que comme le type majeur est sur 3 bits, ce type peut être reconnu car il commence par la valeur "0" ou "1+On peut aussi noter que comme le type majeur est sur 3 bits, ce type peut être reconnucar il commence par la valeur "0" ou "1
  
 === 1.2 Type entier négatif === === 1.2 Type entier négatif ===
Ligne 191: Ligne 193:
 {{ :reseaux:generalites:capture_d_e_cran_2018-05-21_a_20.34.05.png?nolink&900 |}} {{ :reseaux:generalites:capture_d_e_cran_2018-05-21_a_20.34.05.png?nolink&900 |}}
  
-<note tip>On peut calculer le degré de compression de CBOR. Ainsi, dans le premier exemple, le tableau JSON [1,2,3,4] faisait 9 caractères tandis que la représentation CBOR n'en faisait que 5. Pour le dernier exemple (illustration ci dessus), les 13 octets de la représentation CBOR sont transformés en 34 caractères (donc 34 octets) en JSON.</note>+<note tip>On peut calculer le degré de compression de CBOR. Ainsi, le tableau JSON [1,2,3,4] est codé sur 9 caractères tandis que la représentation CBOR 8401020304 n'en fait que 5. Pour l'illustration ci dessus, les 13 octets de la représentation CBOR sont transformés en 34 caractères (donc 34 octets) en JSON.</note>
  
  
  • reseaux/generalites/cbor.txt
  • Dernière modification : 2021/12/19 08:19
  • de phil