Encoder correctement les paramètres d’une chaîne de requête
L’outil propose deux modes. Composant (encodeURIComponent) s’applique à un nom ou une valeur de paramètre ; URL complète (encodeURI), à une URL entière déjà bien structurée. Les confondre est la cause la plus fréquente de chaînes de requête cassées.
Exemple détaillé
Le mode URL complète garde le & dans la valeur : le serveur lit deux paramètres au lieu d’un.
- Entrée
- https://example.com/search?q=salt & pepper&page=2
- Résultat ·
encodeURI() - https://example.com/search?q=salt%20&%20pepper&page=2
Paramètres lus par le serveur
- "q" = "salt "
- " pepper" = ""
- "page" = "2"
Encoder d’abord la valeur en mode Composant la conserve comme un seul paramètre.
- Entrée
- salt & pepper
- Résultat ·
encodeURIComponent() - salt%20%26%20pepper
https://example.com/search?q=salt%20%26%20pepper&page=2
Paramètres lus par le serveur
- "q" = "salt & pepper"
- "page" = "2"
Mode Composant ou URL complète, caractère par caractère
| Caractère | Composant | URL complète |
|---|---|---|
| : | %3A | : |
| / | %2F | / |
| ? | %3F | ? |
| # | %23 | # |
| & | %26 | & |
| = | %3D | = |
| + | %2B | + |
| ␠ | %20 | %20 |
| é | %C3%A9 | %C3%A9 |
Ce que fait l’outil
- Encodez séparément chaque nom et chaque valeur de paramètre en mode Composant, qui échappe & = ? # + et /.
- Assemblez les paires encodées sous la forme nom=valeur séparées par &, puis ajoutez le tout après le ? de l’URL.
- N’utilisez le mode URL complète que sur une URL entière : il conserve : / ? # & = + tels quels et ne protège donc pas une valeur qui en contient.