名前が示すように、短いURLは短く見えるウェブです。 Twitterが短いURLサービスを開始して以来、主要なインターネット企業は独自の短いURLサービスを開始しました。短いURLの最大の利点は、短く、ほとんどの文字であり、公開、普及、複製、ストレージに便利です。
オンライン検索を通じて、2つの短いURLアルゴリズムが循環され、 1つはMD5ヤードに基づいており、もう1つは自己増加シーケンスに基づいています。
1. MD5コードに基づく:このアルゴリズムによって計算された短いURLの長さは、一般に5桁または6桁です(確率が少ない)。
5つまたは6つの地域。 Google(http://goo.gl)を感じて、Weiboは同様のアルゴリズム(推測)を使用しますが、これはより美しく見えます。
2。自己増加シーケンスに基づいて:このアルゴリズムの実装は比較的単純で、衝突の可能性は0であり、式の式は無限である可能性があり、長さは1から始まります。 Baiduの短いURLサービス(http://dwz.cn/)がこのアルゴリズムのようです。
特定のアルゴリズム
1。MD5コード:URLの長さがnであると仮定します
A。
b aによって取得された8文字列を参照してください。
n * 6 -longバイナリ番号を取得します
c。
数値は、インデックスアルファベットとして対応する文字または数字として使用され、ステッチは長さnの短いURLです。
静的最終char [] digits = {'0'、 '1'、 '2'、 '3'、 '4'、 '5'、 '6'、 '7'、 '8'、 'a' b '、 'c'、 'd'、 'e'、 'f'、 'g'、 'h'、 'i'、 'j'、 '' '、' 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 '' '' '' '' '' '' ''、 '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");}文字列md5hex = digestutils。 MD5HEX(Longurl); 、バイナリ); long.valueof(1 6)&BinaryLengthfixer); Substring、j + 1); (shorturl)!
2。自己添加シーケンス:
aまたはシーケンスの自己評価は、値の62で表されます。
プライベートアトミックシーケンス= new Atomiclong(0); = new StringBuilder(true){int)(seq%62) } sbuilder.toString();}を返します
Mavenプロジェクトのコードは、2つのマップを使用して、ストレージロングショートURLの相互マッピングをシミュレートします。
この記事は、誰もが短いURLサービスを学ぶのに役立つことが期待されています。