Protocoles et sérialisation binaire

décodeur RESP RedisLire les octets sans supposer leur sens

Collez du texte RESP échappé ou des octets Hex pour analyser des trames complètes localement.

décodeur RESP Redis

Entrée RESP

Résultat

Saisissez du RESP ou chargez un exemple.

Analyse locale, sans connexion Redis ni envoi.

Options

Saisissez du RESP ou chargez un exemple.

Une réponse Redis affichée comme une simple valeur peut masquer un préfixe ou une longueur erronée dans la capture. Le décodeur RESP Redis remonte du premier octet à chaque limite de valeur pour éclaircir ce qui a réellement circulé.

Pourquoi utiliser ce décodeur RESP Redis

Les frontières en octets restent visibles dans chaque type décodé.

Vérifier les segments de flux

Le décodeur RESP Redis contrôle la taille déclarée et la terminaison de chaque segment RESP3 avant de les réunir. L’arbre garde le nombre de segments et refuse de présenter un flux interrompu comme une valeur complète.

Des segments d’octets réunis dans une valeur typée tout en gardant leurs limites

Exporter sans perdre les types

Une chaîne binaire garde son Hex, une map conserve des couples clé-valeur ordonnés et un attribut reste lié à la valeur suivante. Le JSON typé évite les conversions trompeuses.

Valeur binaire, clé numérique et attribut représentés par des champs JSON distincts

Retrouver la première limite incorrecte

01

Choisir la représentation reçue

Par défaut, les caractères \r et \n deviennent des octets CRLF. Choisissez Hex pour les données binaires ; un LF isolé n’est jamais corrigé en silence.

  • Les longueurs comptent les octets UTF-8, pas les caractères affichés.
02

Limiter la version si elle est connue

Le mode automatique accepte les types communs à RESP2 et RESP3 et signale les préfixes propres à RESP3. Le mode RESP2 les rejette.

  • Analyse automatique après 350 ms ; en manuel, Ctrl/Cmd + Entrée lance la lecture.
03

Comparer puis exporter

Dans l’arbre, comparez la plage d’octets et la longueur annoncée. Un tableau de chaînes au niveau supérieur reçoit un résumé de commande, sans validation par Redis.

  • Tout changement rend la copie et le téléchargement indisponibles jusqu’à la prochaine analyse.

Voir la structure du protocole Redis

Arbre RESP2 et RESP3

Le décodage Redis distingue chaîne vide et chaîne nulle, tableaux et maps, ainsi qu’une erreur renvoyée par le serveur d’une erreur de lecture.

Contrôle strict des longueurs

Les octets UTF-8 présents, la longueur annoncée et le CRLF final doivent concorder. Le premier écart indique un offset et la ligne de saisie.

Trames consécutives

Plusieurs réponses ou requêtes d’un pipeline restent dans leur ordre. Une forme de commande affiche son nom et ses arguments sans prétendre qu’elle serait acceptée.

JSON avec marqueurs de type

Les nombres très grands restent du texte décimal, les données binaires restent en Hex et les attributs RESP3 restent attachés à la bonne valeur.

Ce que les octets ne révèlent pas

Aucune connexion Redis
Le protocole Redis est ici lu dans une capture collée. Aucun hôte, port ou mot de passe n’est demandé ; aucune commande n’est exécutée.
Version négociée inconnue
RESP2 et RESP3 partagent plusieurs encodages. Le mode auto donne la version minimale nécessaire, pas la réponse réelle de HELLO.
Pas de conversion JSON destructive
Une map peut avoir des clés non textuelles ou répétées. Elle reste une liste de couples, et une chaîne binaire non UTF-8 reste en Hex.
Entrée complète et bornée
Le décodeur RESP Redis exige des CRLF et des longueurs exacts. Limites : 1 Mio, 1000 trames, 10000 nœuds et 64 niveaux ; un flux coupé échoue.

Questions sur le décodeur RESP Redis

Comment lire le protocole Redis dans une capture ?

Collez des données RESP échappées ou Hex. L’arbre indique le type de chaque préfixe, sa plage d’octets et les valeurs imbriquées ; il ne se connecte pas au serveur.

Comment reconnaître le format RESP d’une chaîne bulk ?

Après $, la longueur est exprimée en octets, suivie de CRLF, des données et d’un autre CRLF. Les caractères UTF-8 peuvent occuper plusieurs octets.

Quelle différence entre RESP2 et RESP3 est visible ici ?

Les types map, booléen, attribut, push et d’autres demandent RESP3. Une trame composée seulement de types communs ne révèle pas la version négociée.

Le décodeur analyse-t-il aussi les protocoles applicatifs d’un PCAP ?

Non. Il attend un flux qui commence directement par un préfixe RESP ; il ne retire pas TCP, TLS ni d’autres couches d’une capture réseau.

Peut-on convertir une map RESP en objet JSON ordinaire ?

Pas sans perte possible : une clé RESP peut être binaire ou numérique. Le JSON exporté utilise donc des entrées ordonnées et des marqueurs de type.

Une question reste ouverte ?

Inspecter une capture avec le décodeur RESP Redis

Repérez le premier octet incohérent avant de modifier votre client. Le décodeur RESP Redis n’autorise l’export qu’après une lecture complète et réussie.

Traitement local dans votre navigateur.