Désérialisation

Définition, exemples et bonnes pratiques

À retenir

  • C'est l'action de reconstruire un objet à partir d'un flux d'octets ou d'un texte.
  • C'est l'exact opposé de la sérialisation.
  • C'est une étape critique pour la sécurité des applications.

La désérialisation est le procédé informatique qui consiste à transformer des données stockées sous une forme compacte ou textuelle (comme un fichier ou un message réseau) pour les reconstruire en un objet complexe en mémoire vive. C'est l'analogie d'un meuble livré en kit : la désérialisation correspond au montage du meuble pour qu'il soit enfin utilisable dans votre maison.

Étymologie

Emprunté à l'anglais deserialization, ce terme se décompose avec le préfixe « dé- » (marquant l'inversion) et « série ». En informatique, cela signifie que l'on extrait des données d'une file d'attente linéaire (une série d'octets) pour leur redonner une structure multidimensionnelle.

Exemples d'usage

  • Une application météo reçoit un texte au format JSON d'un serveur et le transforme en un objet de programmation pour afficher les températures.
  • Le chargement d'une partie de jeu vidéo : le fichier de sauvegarde est lu et transformé en positions de personnages et scores en mémoire.
  • La récupération d'un profil utilisateur stocké dans une base de données NoSQL pour l'utiliser dans un code Java ou Python.

Cas d'usage

On utilise la désérialisation dès qu'un programme doit lire des données provenant de l'extérieur : réception de données via une API Web, lecture de fichiers de configuration complexes, ou communication entre deux micro-services.

Bonnes pratiques

Le danger principal est la désérialisation de données non fiables. Un attaquant peut manipuler le flux de données pour forcer l'application à exécuter des commandes malveillantes lors de la reconstruction de l'objet. Il est recommandé d'utiliser des formats de données simples (comme JSON) et de valider strictement le contenu avant de le traiter.

Synonymes

restauration d'objet reconstruction de données lecture de flux

Antonymes

sérialisation linéarisation

Conseil

Quand vous débutez, privilégiez le format JSON pour vos exercices de désérialisation. C'est un format textuel facile à lire et à déboguer, ce qui permet de bien comprendre comment vos données se transforment d'un simple texte en un objet manipulable par votre code.

Questions fréquentes

Quelle est la différence entre sérialisation et désérialisation ?

La sérialisation transforme un objet vivant en fichier ou texte pour le transporter. La désérialisation reprend ce fichier pour recréer l'objet d'origine.

Est-ce que tous les langages le font ?

Oui, la plupart des langages modernes (Python, JavaScript, Java, C#) possèdent des outils intégrés ou des bibliothèques pour gérer cela automatiquement.