O URL curto, como o nome indica, é a web que parece curta. Desde o lançamento do Twitter de serviços curtos de URL, as principais empresas de Internet lançaram seus próprios serviços de URL curtos. A maior vantagem do URL curto é poucos caracteres, que são convenientes para publicar, disseminação, replicação e armazenamento.
Através da pesquisa on -line, dois algoritmos curtos de URL foram divulgados, um é baseado em jardas MD5 e o outro é baseado na sequência de auto -aumento.
1. Com base no código MD5: o comprimento do URL curto calculado por esse algoritmo é geralmente de 5 ou 6 dígitos.
5 ou 6 regiões. Sentindo Google (http://goo.gl), o Weibo usa um algoritmo semelhante (adivinhado), que pode parecer mais bonito.
2. Com base na sequência de auto -aumento: essa implementação de algoritmo é relativamente simples, a possibilidade de colisão é 0, a expressão da expressão pode ser infinita, o comprimento começa em 1. Parece que o serviço de URL curto do Baidu (http://dwz.cn/) é esse algoritmo.
Algoritmo específico
1. Código MD5 : Suponha que o comprimento do URL seja n
a.
b.
Obtenha um número binário N * 6 -Long
c.
Os números são usados como letras ou números correspondentes como alfabeto de índice, e a costura é um URL curto com um comprimento n.
Estático final char [] dígitos = {'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 y y ',' Z '};
Public String Shorten (string longurl, intlllmength) {if (urlllength <0 || urlllength> 6) {lança novos argumentos ilegais ("o comprimento do URL deve estar entre 0 e 6"));} string md5hex = digestutils. md5hex (longurl); , binário); Long.Valueof (substring, 1 6) e BinaryLengthFixer); Substring, J * 6, (J + 1) * 6); (Shorturl)!
2. Sequência auto -adiada:
a.
Private Atomiclong Sequence = New Atomiclong (0); = Novo StringBuilder (); } Retorna Sbuilder.toString ();}
O código no projeto MAVEN usa o mapa 2 para simular o mapeamento mútuo do URL de armazenamento que longo de armazenamento.
Espera -se que este artigo seja útil para que todos aprendam serviços de URL curtos.