1. Home
  2. URLs courtes : une implémentation open-source avec Symfony

From the roof of the "Centre Geoges Pompidou", Paris modern art museum, the sight over Paris is stunning. There are people, there, in the lights of a january evening. see on Flickr
From the roof of the "Centre Geoges Pompidou", Paris modern art museum, the sight over Paris is stunning. There are people, there, in the lights of a january evening. see on Flickr

Qu'est-ce qu'une "url courte" ou "short url" ?

Une "url courte" est, comme son nom l'indique, une chaîne de caractères représentant une url, composée d'un petit nombre de caractères, et pointant vers un document initialement situé à une adresse plus "longue".

Pour prendre un exemple dans l'actualité, l'url http://xav.cc/hadopi redirige vers le document situé à l'adresse http://fr.wikipedia.org/wiki/HADOPI (dont, par ailleurs, je recommande la lecture au plus grand nombre).

Exemples et intérêts

Appelées "short url" en anglais, les url courtes permettent tout simplement de disposer d'urls plus simples à manipuler pour pointer vers des documents. Cela présente plusieurs intérêts :

Mécanismes

Il existe de très nombreux services fournisseurs d'url courtes : TinyURL est le plus ancien d'entre eux, mais la fonctionnalité est assez simple à copier et depuis de très nombreux services similaires ont vu le jour. Techniquement, la plateforme qui héberge l'url courte effectue une redirection vers l'url d'origine. Le code HTTP habituellement employé - en tout cas, celui qui devrait l'être - est le code 301.

Une page Web HTML peut déclarer son url courte préférée dans ses en-têtes, en employant la balise link pour l'attribut rel=shortlink :

<link rel="shortlink" href="http://xav.cc/hadopi" />

Le service de redirection de base est parfois complété par d'autres options :

Mécanismes des systèmes de redirection d'url

Ce schéma décrit deux mécanismes :

L'ensemble de ce procédé est parfaitement décrit dans la section "short URL" du wiki de snaplog.

Limitations et critiques

Si les systèmes de réduction d'url apportent de vrais avantages, ils sont néanmoins sujets à certaines critiques, pour des raisons variées.

Tout d'abord, tous ces systèmes sont de par leur nature sujets au link rot : comme c'est l'url courte qui est diffusée à la place de la "vraie" url, ces services se trouvent sur le chemin de la requête de l'internaute, et introduisent donc une possibilité de cassure de la requête :

Lorsqu'il clique sur l'url courte, l'internaute n'a a priori aucun moyen de connaître quelle est l'url de destination de la redirection. Nommé "obfuscation d'url", cet inconvénient empêche une navigation sûre, et retire tout moyen de déterminer à l'avance, par son url, la nature du site qui va être affiché.

Le besoin d'outils open-source

Parmi les inconvénients cités ci-dessus, plusieurs pourraient être résolus par la multiplication du nombre de services de redirection d'urls.

En effet, un plus grand nombre de services de ce type éviterait qu'un seul de ces fournisseurs accapare l'intégralité des urls courtes, et réduirait donc l'influence potentielle de ce fournisseur (risque de black-out le jour où ce fournisseur fermera ses portes, tentation de rediriger frauduleusement du trafic vers des sites affiliés, etc.)

L'existence d'une ou de plusieurs solutions open-source serait donc bienvenue ; au même titre que les forums du type phpBB, Vanilla ou autre ont permis de ne pas centraliser les débats sur quelques plateformes professionnelles, de même que Dotclear, Wordpress and co. ont permis d'éviter que tous les blogs d'internet aient été hébergés chez 3 ou 4 gros fournisseurs, l'existence de quelques solutions open-source permettrait une multiplication rapide des services disponibles. Mieux : chaque site pourrait héberger son propre "réducteur d'url", et le diffuser le plus simplement possible à l'aide de l'attribut HTML rel=shortlink (lire rev=canonical, chez Anne Van Kesteren).

Et voici le schéma de fonctionnement idéal :

Utilisation des urls courtes préférées

sfShortUrl, une implémentation open-source des URLs courtes

J'ai publié ce soir un plugin pour Symfony permettant de mettre aisément en place un système de redirections d'url. Alors allez-y : téléchargez, installez, enregistrez un domaine court, et à vous les urls courtes !

sfShortUrlPlugin est déjà employé par xav.cc, et n'attend plus que de nombreux autres déploiements.

written on