Skip to content

Encodage d'URL HTML

Une URL (Uniform Resource Locator - Localisateur Uniforme de Ressource) est l’adresse unique d’une ressource sur le web, comme une page web ou une image.

Les URL peuvent utiliser des noms lisibles par l’homme (comme example.com) ou des adresses IP (comme 192.168.1.1). La plupart des gens utilisent des noms car ils sont plus faciles à retenir.

Les navigateurs web utilisent les URL pour demander des ressources aux serveurs web. Lorsque vous cliquez sur un lien, le navigateur utilise l’URL spécifiée dans l’attribut href de la balise <a>.

Une URL typique, comme https://www.example.com/path/to/resource.html, suit une structure standard :

scheme://host.domain:port/path/filename

Explication :

  • schéma : Définit le protocole (par exemple, http, https). https est la norme sécurisée.
  • hôte : Souvent www, mais peut varier.
  • domaine : Le nom de domaine (par exemple, example.com).
  • port : Le port réseau (par défaut pour http est 80, pour https est 443). Généralement omis.
  • chemin : Le chemin d’accès à la ressource sur le serveur.
  • nom de fichier : Le nom de la ressource spécifique (par exemple, resource.html).

Voici quelques schémas d’URL courants :

SchémaSignificationUtilisation principale
httpProtocole de Transfert HypertextePages web standard (Non crypté - À éviter pour les données sensibles).
httpsProtocole de Transfert Hypertexte SécuriséPages web sécurisées (cryptées). La norme pour les sites web modernes.
ftpProtocole de Transfert de FichiersUtilisé pour le transfert de fichiers (moins courant dans les navigateurs maintenant).
fileFichier localRéférence un fichier sur votre ordinateur local.

Encodage d’URL (Encodage en pourcentage)

Section titled “Encodage d’URL (Encodage en pourcentage)”

Les URL ne peuvent contenir qu’un ensemble limité de caractères du jeu de caractères ASCII.

Les caractères en dehors de cet ensemble standard (comme les espaces, les lettres accentuées ou les symboles) doivent être encodés avant d’être envoyés sur internet. Ce processus est appelé encodage d’URL ou encodage en pourcentage.

L’encodage d’URL remplace les caractères non sécurisés ou non-ASCII par un « % » suivi de leur représentation hexadécimale à deux chiffres (basée sur leur valeur d’octet UTF-8).

Par exemple, un espace est souvent encodé en %20 (bien que les systèmes plus anciens utilisaient parfois +, %20 est la norme pour les chemins et les chaînes de requête). Le caractère € (symbole de l’Euro) devient %E2%82%AC en encodage UTF-8.

La plupart des navigateurs web modernes et des frameworks de développement gèrent l’encodage d’URL automatiquement lorsque vous naviguez ou soumettez des formulaires. Cependant, comprendre l’encodage est crucial pour déboguer les problèmes liés aux URL ou lors de la construction d’URL de manière programmatique (par exemple, en JavaScript en utilisant encodeURIComponent()).

Exemple d’encodage d’URL dans un formulaire

Section titled “Exemple d’encodage d’URL dans un formulaire”

Considérez un simple formulaire HTML :

<form action="/search" method="get">
<input type="text" name="query" value="HTML tips & tricks">
<button type="submit">Search</button>
</form>

Lorsque vous cliquez sur « Soumettre », le navigateur encode la valeur d’entrée avant de l’envoyer au serveur. L’espace devient %20 et l’esperluette & devient %26. L’URL résultante pourrait ressembler à :

`/search?query=HTML%20tips%20%26%20tricks`

L’encodage des caractères est important

Section titled “L’encodage des caractères est important”

Les codes hexadécimaux spécifiques utilisés dans l’encodage en pourcentage dépendent de l’encodage des caractères du document HTML. La norme universelle et la forte recommandation pour les pages web est UTF-8.

L’utilisation de l’UTF-8 garantit qu’une large gamme de caractères internationaux est gérée de manière cohérente.

Exemples d’encodages pour les caractères courants utilisant l’UTF-8 :

CaractèreEncodage en pourcentage UTF-8
€%E2%82%AC
£%C2%A3
©%C2%A9
®%C2%AE
ü%C3%BC
ñ%C3%B1
%20
&%26
?%3F

Pour un guide complet sur l’encodage d’URL et les fonctions associées, consultez les MDN Web Docs.