Langue : en | de | fr | es

Qu'est-ce que l'encodage URL et comment fonctionne-t-il ?

Les applications web échangent constamment des données via des URL : requêtes de recherche, filtres, paramètres de suivi, chemins multilingues et appels API. Cependant, une URL ne peut contenir qu'un ensemble restreint de caractères définis par des normes techniques. Lorsqu'une chaîne comprend des espaces, des symboles ou des caractères non latins, elle doit être transformée en une représentation sécurisée avant d'être transmise. Cette conversion garantit que les navigateurs, les serveurs et les intermédiaires interprètent l'adresse exactement comme prévu.

Ce guide explique la logique technique qui sous-tend le processus, montre son fonctionnement à l'aide d'exemples pratiques et met en évidence les erreurs de mise en œuvre les plus courantes qui entraînent des liens rompus ou des paramètres endommagés.

Que signifie le codage URL en termes techniques ?

Selon la norme RFC 3986, l'encodage URL signifie qu'une URL ne peut contenir que des caractères ASCII « non réservés » spécifiques, et que tout caractère ne faisant pas partie de cet ensemble autorisé doit être converti avant de pouvoir circuler en toute sécurité sur le Web.

La règle de transformation est simple :

% + deux chiffres hexadécimaux

La valeur hexadécimale représente l'octet numérique du caractère d'origine.

Pourquoi cette transformation est-elle nécessaire ?

Si les caractères ne sont pas convertis correctement :

  • Les espaces interrompent le chemin d'accès de l'URL.
  • Les chaînes de requête peuvent être mal divisées.
  • Les symboles spéciaux peuvent être mal interprétés.
  • Les serveurs peuvent renvoyer des erreurs 400 ou 404.
  • Des risques de sécurité peuvent apparaître en raison de requêtes mal formées.

Lorsqu'elle est correctement appliquée, la conversion garantit :

  • Communication HTTP stable.
  • Analyse précise des paramètres.
  • Comportement cohérent entre les navigateurs.
  • Décodage fiable côté serveur.

Comment fonctionne le processus de codification étape par étape

Techniquement, ce mécanisme convertit les caractères en leur représentation hexadécimale en octets basée sur le codage ASCII ou UTF-8. Chaque octet résultant est préfixé d'un signe pourcentage.

Exemple 1 : Espace dans un chemin d'accès à un fichier

URL d'origine :

https://example.com/new page.html

L'utilisation d'espaces dans un chemin d'accès n'est pas autorisée.

Valeur du caractère espace :

  • Décimal : 32
  • Hexadécimal : 20

Version corrigée :

https://example.com/new%20page.html

Exemple 2 : Symboles spéciaux dans les paramètres

Original :

https://example.com/search?q=smart locker & indoor

Si & est traité comme une donnée plutôt que comme un séparateur de paramètres, il doit être codé.

Version correcte :

https://example.com/search?q=smart%20locker%20%26%20indoor

Éléments convertis :

  • Espace → %20
  • & → %26

Important : le symbole « & » qui sépare les paramètres doit rester inchangé.

Catégories de caractères dans les URL

Reconnaître les types de caractères permet d'éviter les transformations incorrectes.

Caractères non réservés

Ces caractères sont sûrs et peuvent rester inchangés:

Catégorie

Caractères

Letras

A–Z a–z

Chiffres

0–9

Symboles

- _ . ~

Exemple:

https://example.com/product-123_A

Aucune conversion n'est nécessaire.

Caractères réservés

Ces caractères définissent la structure d'une URL :

Caractéristique

Fonction

?

Lancez la chaîne de consultation

&

Séparez les paramètres

=

Attribue des valeurs aux paramètres

#

Référence de fragment

/

Séparateur de route

:

Séparateur de schéma

Si ces symboles sont mal codés, l'adresse perd sa structure logique.

Incorrect :

https://example.com/page%3Fid%3D10

Correct :

https://example.com/page?id=10

Caractères à convertir

Les symboles suivants doivent être transformés lorsqu'ils sont utilisés comme données littérales :

  • Espace
  • "
  • < >
  • { }
  • |
  • \
  • ^
  • `
  • %

Exemple avec le signe pourcentage

Original :

https://example.com/50% discount

Version sécurisée :

https://example.com/50%25%20discount

  • % devient %25
  • L'espace devient %20

Codage des URL dans les applications web

Dans la pratique, lorsque les développeurs définissent le codage des URL, ils font généralement référence à des données qui ont déjà été converties au format codé en pourcentage avant d'être envoyées dans une requête HTTP.

Vous trouverez ces valeurs transformées en :

  • Envois de formulaires HTML.
  • Appels AJAX.
  • Paramètres de redirection.
  • URL de suivi.
  • Requêtes API REST.

Exemple : données du formulaire

L'utilisateur saisit :

John Smith & Co.

Le navigateur envoie :

John+Smith+%26+Co.

Remarque : dans le format application/x-www-form-urlencoded, les espaces sont remplacés par + au lieu de %20.

Implémentation en code

La plupart des langages de programmation fournissent des utilitaires intégrés.

Exemple en JavaScript

Codage d'un paramètre :

encodeURIComponent(« indoor locker & storage »)

Résultat :

indoor%20locker%20%26%20storage

Le décodage restaure la chaîne d'origine :

decodeURIComponent(« indoor%20locker%20%26%20storage »)

Gestion Unicode et URL multilingues

Les systèmes modernes sont basés sur UTF-8. Les caractères non ASCII sont d'abord convertis en séquences d'octets UTF-8, puis exprimés sous forme de pourcentage.

Exemple :

Original :

https://example.com/product

Converti :

https://example.com/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82

Chaque octet UTF-8 est converti en %XX.

Ce mécanisme permet une gestion adéquate des contenus internationaux et des sites web multilingues.

Tableau de référence rapide

Caractères

Décimales

Hexadécimaux

Codifiés

Espace

32

20

%20

!

33

21

%21

34