Derniere mise a jour : 9 fevrier 2026

Raccourcisseur d'URL

2024 Web Backend

Presentation

Objectif principal : Un service style bit.ly pour raccourcir des URLs longues. On colle une URL, on recoit un lien court. Avec stats de clics et QR code en bonus.

Technologies utilisees : Go pour le backend (rapide et simple pour ce genre de service), Redis pour le stockage cle-valeur, QRCode library pour generer les QR codes.

Fonctionnalites cles : Raccourcissement avec code aleatoire ou custom, redirection 301, stats (nombre de clics, referers, pays), QR code genere automatiquement, expiration optionnelle.

Livrables attendus : API REST + page web simple. Le service doit supporter des milliers de redirections par seconde.

Calendrier previsionnel : Une semaine. Go c'etait nouveau pour moi mais le projet est simple donc bonne occasion d'apprendre.

Parties prenantes & criteres de succes : Projet pour apprendre Go. Le critere c'est la performance : la redirection doit etre quasi instantanee.

Le Defi

Generer des codes courts uniques sans collision. Et faire ca vite. Si je verifie en BDD a chaque generation c'est lent. Et le code doit etre court mais avoir assez de combinaisons possibles.

La Solution

J'utilise base62 (a-zA-Z0-9) sur un compteur auto-incremente. Redis INCR est atomique donc pas de collision. 6 caracteres = 56 milliards de combinaisons, largement suffisant. La verification d'existence n'est necessaire que pour les codes custom.

Architecture Technique

Serveur Go avec Gin framework pour le routing. Redis stocke les mappings code->URL et les stats. Routes : POST /shorten, GET /:code (redirect), GET /:code/stats, GET /:code/qr. Middleware pour logger les clics de maniere asynchrone (channel Go).

Points Cles

  • Redirection ultra rapide
  • Stats de clics
  • QR codes automatiques

Apercu

Resultats & Apprentissages

Le service tourne et fait des redirections en moins de 5ms. J'ai appris Go qui est vraiment elegant pour ce genre de services. Redis c'est parfait pour le key-value rapide. J'utilise ce service pour mes liens partages.

Evolutions Futures

Dashboard avec graphiques des stats. Detection des liens malveillants avant raccourcissement. API avec rate limiting et authentification. Peut-etre un domaine court custom.

Retour aux projets Me contacter