URL pendek, sesuai namanya, adalah web yang terlihat pendek. Sejak peluncuran layanan URL pendek Twitter, perusahaan internet besar telah meluncurkan layanan URL pendek mereka sendiri. Keuntungan terbesar dari URL pendek adalah pendek, beberapa karakter, yang nyaman untuk penerbitan, diseminasi, replikasi dan penyimpanan.
Melalui pencarian online, dua algoritma URL pendek telah diedarkan, satu didasarkan pada MD5 yard, dan yang lainnya didasarkan pada urutan penurunan diri.
1. Berdasarkan Kode MD5: Panjang URL pendek yang dihitung oleh algoritma ini umumnya 5 atau 6 digit.
5 atau 6 daerah. Merasa Google (http://goo.gl), Weibo menggunakan algoritma yang sama (ditebak), yang mungkin terlihat lebih indah.
2. Berdasarkan urutan penurunan diri: implementasi algoritma ini relatif sederhana, kemungkinan tabrakan adalah 0, ekspresi ekspresi bisa tak terbatas, panjangnya dimulai dari 1. Sepertinya layanan URL pendek Baidu (http://dwz.cn/) adalah algoritma ini.
Algoritma spesifik
1. Kode MD5 : Asumsikan bahwa panjang URL adalah N
A.
b. Lihat 8 string yang diperoleh dengan nomor heksadesimal, dan lakukan & operasi dengan n * 6 1 yang diwakili oleh nomor biner yang diwakili oleh n * 6 1
Dapatkan nomor biner N * 6 -
c. Bagilah angka yang diperoleh dengan B ke dalam bagian N, 6 digit per paragraf, dan kemudian lakukan 6 digit dengan 61 & operasi, yang akan mendapatkan
Angka digunakan sebagai huruf atau angka yang sesuai sebagai alfabet indeks, dan jahitan adalah URL pendek dengan panjang n.
Static final char [] digit = {'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 ',' Z '};
String public shorten (string longurl, int urllength) {if (urllength <0 || urllength> 6) {throw new ilegalarguments ("Panjang url harus menjadi etween 0 dan 6"));} string md5hex = digestutils. MD5HEX (Longurl); , biner); Long.ValueOf (Substring, 1 6) & BinaryLengthFixer); substring, j * 6, (j + 1) * 6); (Shorturl)! = Null) {lanjutan;} else {return shorturl;} // Jika semua 4 kemungkinan sudah ada kembali null;}
2. Urutan diri sendiri:
a. atau penghargaan diri dari urutan akan diwakili oleh 62 dalam nilai.
Private Atomiclong Sequence = New Atomiclong (0); = StringBuilder (); } Return sbuilder.toString ();}
Kode dalam proyek MAVEN menggunakan 2 peta untuk mensimulasikan pemetaan timbal balik dari URL penyimpanan-panjang.
Diharapkan bahwa artikel ini bermanfaat bagi semua orang untuk mempelajari layanan URL pendek.