L'URL courte, comme son nom l'indique, est le Web qui semble court. Depuis le lancement par Twitter de services d'URL courts, les grandes sociétés Internet ont lancé leurs propres services d'URL courts. Le plus grand avantage de l'URL courte est court, peu de caractères, qui sont pratiques pour la publication, la diffusion, la réplication et le stockage.
Grâce à la recherche en ligne, deux algorithmes URL courts ont été diffusés, l'un est basé sur MD5 yards, et l'autre est basé sur la séquence d'auto-augmentation.
1. Sur la base du code MD5: La longueur de l'URL courte calculée par cet algorithme est généralement de 5 ou 6 chiffres.
5 ou 6 régions. Sentant Google (http://goo.gl), Weibo utilise un algorithme similaire (deviné), qui peut être plus beau.
2. En fonction de la séquence d'auto-augmentation: cette implémentation d'algorithme est relativement simple, la possibilité de collision est 0, l'expression de l'expression peut être infinie, la longueur commence à partir de 1. Il semble que le service URL court de Baidu (http://dwz.cn/) est cet algorithme.
Algorithme spécifique
1. Code MD5 : Supposons que la longueur de l'URL est n
a.
b.
Obtenez un numéro binaire n * 6-long
c.
Les nombres sont utilisés comme lettres ou nombres correspondants comme alphabet d'index, et la couture est une URL courte avec une longueur n.
Statique final char [] chiffres = {'0', '1', '2', '3', '4', '5', '6', '7', '8', 'a a' b ', «C», «d», «e», «f», «g», «h», «i», «j», «k», «l», «m», «m», «m ',' M ',' M ',' M ',' M ',' N ',' O ',' P ',' Q ',' R ',' S ',' T ',' U ', «V», «W», «X», «Y», «Z,« Z »A,« B »,« C »,« C »,« D »,« E »,« F »,« G ',' H ',' I ',' J ',' K ',' L ',' L ',' L ',' L ',' L ',' L ',' L ',' L ', «M», «n», «o», «p», «q», «r», «s», «t», «u», «v», «w», «x», «y y ',' Z '};
Public String Shorten (String Longurl, int urllEngth) {if (urllEngth <0 || urllEngth> 6) {Throw New illégalArguments ("La longueur de l'URL doit être entre 0 et 6"));} chaîne md5hex = digestUtils. MD5HEX (Longurl); , binaire); pour; Long.valueof (substring, 1 6) & binaryLengthFixer); substring, j * 6, (j + 1) * 6); int charindex = Integer.valueof (substring2, binaire) & numéro_61; (Shortl)!
2. Séquence auto-ajoutée:
a.
Séquence privée atomiclong = new ATOMICLONG (0); = New StringBuilder (); } Return sbuilder.toString ();}
Le code du projet Maven utilise 2 MAP pour simuler la cartographie mutuelle de l'URL de stockage-allonge.
Il est à espérer que cet article est utile pour que tout le monde apprenne des services d'URL courts.