# Décodeur de trames WebSocket (RFC 6455)

Collez des trames WebSocket en hexadécimal ou base64 et décodez octet par octet l'en-tête RFC 6455 : FIN, RSV, opcode (texte/binaire/fermeture/ping/pong), bit MASK, longueur étendue 7/16/64 bits, clé de masquage et charge utile après démasquage XOR. Gère plusieurs trames consécutives, la sémantique des codes de fermeture, des avertissements de violation de protocole et une carte colorée des champs avec offsets d'octets.

> Page canonique: https://elysiatools.com/fr/tools/websocket-frame-decoder

- **Catégorie:** Development

- **Mots-clés:** websocket, rfc6455, décodeur de trames, opcode, clé de masquage, dump hexadécimal, code de fermeture

## Présentation

Format de trame (RFC 6455 §5.2) : octet 1 = FIN(0x80) + RSV1-3(0x40/0x20/0x10) + opcode(0x0F) ; octet 2 = MASK(0x80) + longueur 7 bits (126 → uint16 BE sur 2 octets, 127 → uint64 BE sur 8 octets) ; si MASK=1 suivent 4 octets de clé ; la charge est démasquée par XOR mask[i mod 4]. Les trames de contrôle (opcode ≥ 8) exigent FIN=1 et charge ≤ 125 octets ; le client doit toujours masquer (§5.1). Dans la trame close, les 2 premiers octets de charge sont le code de statut (1000 normal, 1001 going away, 1002 erreur de protocole, 1007 UTF-8 invalide, 1009 trop grand…).

## Entrées

- **Données de trame WebSocket (hex ou base64)** (textarea): 81 85 37 fa 21 3d 7f 9f 4d 51 58 (hex dump or base64, multiple frames allowed)
- **Encodage d'entrée** (select)
- **Octets de charge max. à afficher** (number)

## Quand l'utiliser

- Pour inspecter un dump hexadécimal ou base64 issu d’une capture réseau ou d’un proxy.
- Lorsque vous devez vérifier le masquage client, le démasquage XOR et la longueur étendue d’une trame.
- Afin d’analyser une trame de fermeture, un ping/pong ou une violation de protocole RFC 6455.

## Fonctionnement

- Collez les données de trame (hexadécimal ou base64, une ou plusieurs trames consécutives) dans le champ principal.
- Choisissez l’encodage d’entrée (détection automatique, dump hexadécimal ou base64) et, si besoin, limitez les octets de charge affichés.
- Le décodeur lit l’octet 1 (FIN + RSV + opcode), l’octet 2 (MASK + longueur), la clé de 4 octets si MASK=1, puis démasque la charge par XOR mask\[i mod 4\].
- Le résultat HTML présente la carte colorée des champs avec offsets d’octets, la charge démasquée, le code de statut des trames close et les alertes de violation.

## Cas d'usage

- Déboguer une implémentation WebSocket en inspectant opcode, masquage et longueur étendue.
- Analyser un dump de capture pour identifier des trames mal formées ou des codes de fermeture.
- Vérifier le démasquage XOR et la sémantique des trames ping, pong et close.

## Questions fréquentes

### Quels formats d’entrée sont acceptés ?

Dump hexadécimal (espaces autorisés) ou base64, avec détection automatique par défaut.

### Peut-on coller plusieurs trames à la suite ?

Oui, toutes les trames consécutives du dump sont décodées une par une.

### Comment la charge masquée est-elle démasquée ?

Les 4 octets de clé sont extraits puis XOR-és octet par octet avec la charge (mask[i mod 4]).

### Que contient une trame de fermeture ?

Les deux premiers octets de charge forment le code de statut (1000, 1001, 1002…) suivi de la raison éventuelle.

### Les violations de protocole sont-elles signalées ?

Oui, par exemple trame de contrôle sans FIN=1, charge trop longue ou masquage manquant.

## Outils associés

- [Encodeur/Décodeur Base64](https://elysiatools.com/fr/tools/base64-encoder): Encode et décode les chaînes Base64
- [Encodeur/Décodeur Base64URL](https://elysiatools.com/fr/tools/base64url-encoder): Encode et décode le Base64URL (variante Base64 URL-safe utilisée par JWT/JWS/JWE), avec conversion entre Base64 standard et URL-safe
- [Décodeur d’assertion WebAuthn Passkey et débogueur de challenge](https://elysiatools.com/fr/tools/webauthn-passkey-assertion-decoder-challenge-debugger): Décode clientDataJSON, authenticatorData, flags, rpIdHash et signCount ; vérifie ES256, RS256 ou Ed25519 si une clé publique est fournie.
- [Decodeur de traces distribuees et waterfall](https://elysiatools.com/fr/tools/distributed-trace-decoder-waterfall-visualizer): Analyse des traces JSON Jaeger, Zipkin ou OpenTelemetry et affiche spans, latence et erreurs en waterfall
- [Décodeur NTP RFC 5905 / SNTP — seconde intercalaire et époque](https://elysiatools.com/fr/tools/ntp-rfc-5905-sntp-leap-second-epoch-decoder): Décode un paquet NTP/SNTP de 48 octets : champs de bits de l’octet 0, stratum/poll/precision, root delay/dispersion, reference ID, quatre horodatages 64 bits (époque 1900)
- [Décodeur de champs binaires Snowflake / Discord](https://elysiatools.com/fr/tools/snowflake-discord-id-bit-decoder): Analyse les identifiants Snowflake 64 bits sans perte, extrait timestamp, worker, process, sequence et estime le shard Discord.
- [Décodeur d'IDs lexicaux ULID / NanoID / KSUID / Snowflake](https://elysiatools.com/fr/tools/ulid-nanoid-ksuid-snowflake-id-decoder): Décode les ULID (base32 Crockford), KSUID (base62), NanoID, MongoDB ObjectId et snowflakes Discord/Twitter/Sonyflake : décompose horodatage, bits aléatoires et machine, affiche l'heure ISO et l'hex brut, et estime la probabilité de collision (paradoxe des anniversaires).
- [Convertisseur Base64](https://elysiatools.com/fr/tools/base64-converter): Encode et décode les données vers/depuis le format Base64 avec options URL-safe

## Exemples

- [Exemples WebSocket](https://elysiatools.com/fr/samples/websocket): Exemples de communication en temps réel utilisant le protocole WebSocket incluant chat, notifications et streaming de données
- [Exemples de Traitement d'Images Android Java](https://elysiatools.com/fr/samples/android-image-processing-java): Exemples de traitement d'images Android Java incluant lecture/écriture, mise à l'échelle et conversion de format
- [Exemples de Traitement d'Images Android Kotlin](https://elysiatools.com/fr/samples/android-image-processing-kotlin): Exemples de traitement d'images Android Kotlin incluant lecture/écriture, mise à l'échelle et conversion de format
- [Exemples de Traitement d'Images Web Python](https://elysiatools.com/fr/samples/web-image-processing-python): Exemples de traitement d'images Web Python utilisant PIL/Pillow incluant la lecture, l'enregistrement, le redimensionnement et la conversion de format

## Contenu associé

- [Outils d'analyse de texte semi-structuré et d'extraction de tableaux](https://elysiatools.com/fr/hubs/semi-structured-text-table-extraction): Transformez les textes à largeur fixe, les enregistrements à délimiteurs mixtes, les journaux et les tableaux HTML ou Markdown en sorties CSV, JSON, XML ou Excel propres.
