Короткий URL, как следует из названия, - это сеть, которая выглядит коротко. С момента запуска коротких URL -услуг Twitter, крупные интернет -компании запустили свои собственные услуги с коротким URL. Самым большим преимуществом короткого URL является короткий, мало персонажей, которые удобны для публикации, распространения, репликации и хранения.
Благодаря онлайн -поиску были распространены два коротких алгоритма URL -адреса, один основан на ярдах MD5, а другой основан на последовательности самостирации.
1. На основании кода MD5: длина короткого URL, рассчитанного по этому алгоритму, обычно составляет 5 или 6 цифр.
5 или 6 регионов. Чувствуя Google (http://goo.gl), Вейбо использует аналогичный алгоритм (догадается), который может выглядеть красивее.
2. На основании последовательности самостирации: эта реализация алгоритма относительно проста, вероятность столкновения равна 0, экспрессия выражения может быть бесконечной, длина начинается с 1. Похоже, что Short URL -сервис Baidu (http://dwz.cn/) - это алгоритм.
Конкретный алгоритм
1. Код MD5 : предположим, что длина URL -адреса n
A.
b.
Получите бинарный номер N * 6
c.
Числа используются в качестве соответствующих букв или чисел в качестве алфавита индекса, а строчки представляет собой короткий URL с длиной n.
Статический окончательный char [] digits = {'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) {бросить новые нелегаларгументы («длина URL должна быть между 0 и 6»));} String md5Hex = digestutils. MD5HEX (Longurl); , бинар); Long.valueof (substring, 1 6) и BinaryLengthfixer); substring, j * 6, (j + 1) * 6); (ShortUrl)!
2. Self -добавленная последовательность:
А.
Private Atomiclong Sequence = New Atomiclong (0); = New StringBuilder (); } Return sbuilder.toString ();}
Код в проекте Maven использует 2 карту для моделирования взаимного отображения URL-оборота, которое в реальном использовании.
Есть надежда, что эта статья полезна для всех, чтобы выучить короткие услуги URL.