L'expiration d'un lien est une règle qui retire automatiquement un lien court une fois qu'une condition est remplie, de sorte que l'URL cesse de fonctionner au moment que vous choisissez plutôt que de vivre indéfiniment. Un lien auto-destructeur est la même idée réglée pour un usage unique : il disparaît après le premier clic. Les deux sont intentionnels. Vous ne réparez pas un lien cassé, vous en construisez un qui est censé s'arrêter.
Cette intention est toute la distinction qui vaut la peine d'être retenue. Un lien qui casse parce que sa destination a disparu a pourri, et la pourriture est un problème que vous détectez et réparez. Nous avons écrit le guide opérationnel pour cela dans la stratégie de prévention de la pourriture des liens. L'expiration est le mouvement opposé : c'est vous qui décidez que le lien doit s'éteindre, à une date, après N clics, ou après exactement un. Cet article couvre quand chaque mode convient, ce que l'edge retourne réellement quand un lien expiré est atteint, comment l'expiration s'empile avec les portails de mot de passe et les règles géographiques, et les mises en garde de timing qui piègent si vous traitez un lien à usage unique comme une limite de sécurité stricte.
Quand y recourir ? Les offres à durée limitée qui ne devraient plus convertir après la fenêtre promotionnelle. L'accès borné dans le temps à un document partagé ou un export de données. Les liens à usage unique pour un identifiant ou un fichier sensible. La minimisation des données de conformité, où un lien qui accorde l'accès ne devrait pas survivre à la raison pour laquelle il a été créé. Les liens d'événements qui doivent disparaître le lendemain de l'événement pour qu'un QR code périmé sur une affiche n'envoie pas les gens vers le programme de l'année dernière.
Trois modes d'expiration des liens#
L'expiration se présente sous trois formes, et choisir la bonne est l'essentiel de la décision.
Le premier est par date et heure. Vous définissez un horodatage d'expiration, idéalement avec un fuseau horaire, et le lien se résout normalement jusqu'à ce moment, puis s'arrête. C'est l'URL expirante que la plupart des gens imaginent : un lien temporaire pour une campagne qui se termine à minuit, un partage de document qui devrait se fermer à la fin d'un sprint, un lien à durée limitée pour un replay de webinaire que vous ne voulez ouvert qu'une semaine.
Le second est par nombre de clics. Le lien fonctionne pour les N premières requêtes, puis expire. Définissez N à 100 et le cent-et-unième visiteur obtient la réponse d'expiration. C'est utile pour les cadeaux limités, les invitations bêta avec un nombre fixe de places, ou tout cas où la limite est « combien de personnes l'ont utilisé » plutôt que « quel jour est-il ».
Le troisième est l'usage unique, qui est le nombre de clics avec N réglé à un. C'est le lien auto-destructeur. Il s'ouvre une fois et est mort à chaque clic suivant. Les copies transmises sont inutiles, les captures d'écran de l'URL sont inutiles, et un lien divulgué dans un journal est déjà utilisé si le destinataire prévu l'a ouvert en premier.
Les modes ne sont pas mutuellement exclusifs en principe, bien qu'en pratique vous vouliez généralement une règle claire par lien. Un lien qui expire à une date et après un nombre de clics est acceptable, mais soyez explicite sur la condition que vous attendez à se déclencher en premier, car la réponse change la façon dont vous raisonnez sur la durée de vie du lien. Si vous ne pouvez pas dire en une phrase pourquoi un lien donné expire, vous avez probablement choisi le mauvais mode.
Ce que fait l'edge quand un lien expiré est atteint#
Un lien court actif répond avec un 302 vers sa destination. Un lien expiré doit répondre avec quelque chose de terminal, et le choix du code de statut n'est pas cosmétique.
La réponse la plus propre est 410 Gone. Selon la RFC 9110, la spécification de la sémantique HTTP, 410 signifie que la ressource est intentionnellement et définitivement indisponible, et que le serveur n'a pas d'adresse de transfert. C'est exactement ce qu'est un lien expiré. La référence MDN pour 410 Gone note que, contrairement à 404, un 410 est un signal délibéré que la ressource a existé et est maintenant disparue pour de bon, ce qui est un indice que les robots d'indexation respectent en supprimant l'URL de leur index plus rapidement. Pour un lien de campagne expiré dont vous voulez que les indexeurs l'oublient, 410 est le code honnête.
Parfois vous préféreriez ne pas admettre que le lien a jamais existé. Un 404 Not Found est la solution. Il traite le slug expiré comme s'il n'avait jamais été un vrai lien, ce qui est la posture plus discrète pour les liens à usage unique vers du matériel sensible où même confirmer que l'URL était une fois valide révèle quelque chose. 404 et 410 sont tous deux des réponses terminales valides ; la différence est ce que vous êtes prêt à divulguer.
Sur un domaine brandé, vous avez une troisième option plus conviviale pour les humains : une page d'expiration brandée. Au lieu d'un simple code de statut, l'edge sert une petite page HTML qui dit que le lien est fermé et, idéalement, pointe vers une alternative actuelle. C'est le bon choix pour les liens marketing qu'une vraie personne pourrait cliquer des semaines plus tard, à partir d'un actif imprimé ou d'un vieux email. Un 410-avec-corps est toujours conforme aux standards : vous pouvez retourner le statut 410 et servir une page d'explication dans la même réponse. La raison pour laquelle cela compte plus sur un domaine personnalisé est que la page d'expiration porte alors votre marque plutôt qu'une erreur générique, ce qui adoucit l'impasse.
La décision se produit dans le même saut qui autrement émettrait la redirection, ce qui est le même point architectural que nous avons fait à propos des smart links : l'endroit le moins coûteux pour prendre une décision de routage ou de portail est le processus qui écrit déjà la réponse. L'expiration est juste une vérification de plus dans ce chemin, évaluée avant que la redirection soit construite. Un lien expiré coûte à l'edge une comparaison supplémentaire, pas un appel de service supplémentaire.
Cas d'usage par audience#
Différentes équipes se tournent vers l'expiration pour différentes raisons, et le mode qui convient découle de la raison.
Les équipes marketing veulent le plus souvent une expiration basée sur la date. Un lien de vente flash qui continue de convertir après la fin de la vente est un ticket de support en attente, car le prix sur la page de destination ne correspond plus à l'offre dans le lien. Définir une expiration qui correspond à la fenêtre de la campagne garde le lien honnête. Le schéma plus convivial, plutôt qu'un 410 dur, est d'expirer l'offre en direct et de réorienter le slug vers une page « cette offre est terminée, voici celle en cours », qui est la manœuvre de coucher de soleil du guide de prévention de la pourriture des liens appliquée délibérément. Pour les outils de campagne plus larges, Elido pour les marketeurs couvre comment l'expiration s'inscrit aux côtés des modèles UTM et du suivi des conversions.
Les équipes juridiques et de conformité se soucient de la minimisation des données. Le principe de minimisation des données du RGPD dans l'Article 5(1)(c) dit que les données personnelles devraient être limitées à ce qui est nécessaire à la finalité. Un lien qui accorde l'accès à des données personnelles ne devrait pas survivre à cette finalité. Si un lien n'existe que pour laisser un prestataire extraire un rapport ce trimestre, une expiration à la fin du trimestre est l'expression au niveau du lien du même principe que votre politique de rétention énonce déjà pour les données elles-mêmes. Elido pour la conformité et notre page de confiance approfondissent l'aspect résidence et audit.
Les équipes qui partagent des fichiers sensibles s'appuient sur le nombre de clics et l'usage unique. Une remise d'identifiant, un export de données ponctuel, un document sous NDA pour un seul examinateur : le lien devrait s'ouvrir une fois, pour une personne, puis être inerte. Associez cela à un portail de mot de passe et vous avez deux facteurs indépendants, ce à quoi nous arrivons ensuite.
Comment l'expiration s'associe aux portails de mot de passe et aux règles géographiques#
L'expiration est un portail, pas une destination, et les portails s'empilent.
L'edge évalue l'expiration en premier. Un lien expiré n'atteint jamais l'invite de mot de passe et n'exécute jamais les règles de routage géographique ou par appareil, car il n'y a rien vers quoi router. Cet ordre est délibéré : cela signifie qu'un lien à usage unique divulgué qui a déjà été utilisé ne peut même pas être sondé pour savoir s'il avait un mot de passe, puisque la réponse d'expiration revient avant que toute cette logique s'exécute.
Pour les partages sensibles, l'expiration et un mot de passe sont des contrôles complémentaires. Le mot de passe est « prouvez que vous êtes autorisé » ; l'expiration est « et seulement dans cette fenêtre, ou seulement une fois ». L'un ou l'autre seul est plus faible que les deux ensemble. Un lien à usage unique qui est aussi protégé par mot de passe est mort après une seule ouverture réussie et inutile pour quiconque l'intercepte après coup. Nous couvrons le portail lui-même dans les liens courts protégés par mot de passe.
Les règles géographiques se combinent de la même façon. Un lien avec géo-ciblage qui est aussi limité dans le temps routera par pays pendant qu'il est actif et retournera la réponse d'expiration une fois la fenêtre fermée, avec la vérification du pays ne s'exécutant jamais après l'expiration. Le modèle mental est une courte pile de portails que la requête traverse dans l'ordre, et l'expiration se trouve au sommet de cette pile. Rien de tout cela n'est un cas spécial ; cela découle de l'évaluation de la vérification la moins coûteuse et la plus décisive en premier.
Comment le configurer#
Le flux pratique est le même quel que soit le mode. Vous créez ou modifiez un lien court, choisissez une règle d'expiration, et choisissez ce qu'un hit expiré devrait retourner.
Pour une date, définissez l'horodatage d'expiration et confirmez le fuseau horaire. Un lien réglé pour expirer à « minuit » sans fuseau horaire est ambigu selon les régions, et l'ambiguïté est exactement le genre de décalage d'un jour qui remonte dans un fil de support. Utilisez une zone IANA explicite comme Europe/Berlin pour que « fin du jour de campagne » signifie la même chose pour tout le monde.
Pour un nombre de clics, définissez la limite et décidez si vous voulez que le comptage soit strict. Pour un lien à usage unique, définissez la limite à un. Choisissez votre réponse d'expiration par lien : 410 Gone pour les liens dont vous voulez que les robots d'indexation oublient, 404 pour la discrétion, ou une page d'expiration brandée sur un domaine personnalisé pour les liens marketing destinés aux humains. Le guide des smart links explique les champs de règles, et la page de tarification couvre quelles capacités d'expiration se trouvent dans quel niveau.
Une note d'honnêteté sur le timing, car c'est là que l'expiration est surestimée ailleurs. Les règles de date et de nombre de clics sont évaluées à l'heure de la requête par rapport à l'enregistrement du lien, donc une expiration basée sur la date prend effet au moment configuré. Une expiration manuelle, où vous désactivez un lien à la main, doit se propager à travers les caches edge de la même façon que toute modification de lien. C'est environ une seconde dans le cas optimal, avec un court TTL de cache comme limite supérieure, ce qui est le même modèle de propagation que nous avons documenté dans la stratégie de cache pour les redirections URL. Pour les limites de nombre de clics, un trafic concurrent très élevé réparti sur toutes les régions peut laisser passer un petit nombre de clics supplémentaires avant que le compteur distribué se stabilise. Pour un plafond de campagne de 1 000, c'est du bruit. Pour un lien à usage unique que vous traitez comme une limite de sécurité stricte, ne comptez pas sur le comptage seul : superposez un mot de passe ou une vérification côté serveur à la destination, car « exactement une fois, garanti, sous concurrence adversariale » est une propriété que la destination est mieux placée pour appliquer que le saut de redirection. L'expiration à l'edge est un contrôle fort, pas une garantie cryptographique, et le dire est la différence entre une fonctionnalité et une responsabilité.
Utilisée pour ce qu'elle fait bien, l'expiration est l'une des réductions de risque les moins coûteuses dans la boîte à outils des liens. Un lien de campagne qui ne peut pas vous embarrasser après la vente, un partage de document qui se ferme tout seul, un lien d'identifiant qui est utilisé à la première ouverture : chacun élimine une classe de problème avant qu'il ne puisse se produire. Pour la question plus large de savoir si les liens courts sont sûrs à distribuer du tout, les raccourcisseurs d'URL sont-ils sûrs est la lecture complémentaire.
Sur le blog#
- Stratégie de prévention de la pourriture des liens pour les campagnes d'URL courtes
- Smart links expliqués : routage edge sans service supplémentaire
- Liste de contrôle de sécurité pour les raccourcisseurs d'URL : ce qu'il faut attendre de votre fournisseur
- Stratégie de cache pour les redirections URL : TTLs, invalidation et propagation