이름에서 알 수 있듯이 짧은 URL은 짧은 웹입니다. Twitter가 짧은 URL 서비스를 시작한 이후 주요 인터넷 회사는 자체 간단한 URL 서비스를 시작했습니다. 짧은 URL의 가장 큰 장점은 짧고 소수의 문자이며 게시, 보급, 복제 및 저장에 편리합니다.
온라인 검색을 통해 두 개의 짧은 URL 알고리즘이 순환되었으며, 하나는 MD5 야드를 기반으로하고, 다른 하나는 자체 인식 시퀀스를 기반으로합니다.
1. MD5 코드를 기준으로 :이 알고리즘에 의해 계산 된 짧은 URL의 길이는 일반적으로 5 숫자 일 수 있습니다.
5 또는 6 지역. Weibo는 Google (http://goo.gl)을 느끼면서 유사한 알고리즘 (추측)을 사용하여 더 아름답게 보일 수 있습니다.
2. 자체 -인식 시퀀스를 기반으로 :이 알고리즘 구현은 비교적 간단하고 충돌 가능성은 0이고, 표현식의 표현은 무한 할 수 있고 길이는 1에서 시작될 수 있습니다. Baidu의 짧은 URL 서비스 (http://dwz.cn/) 가이 알고리즘 인 것 같습니다.
특정 알고리즘
1. MD5 코드 : URL의 길이가 n이라고 가정합니다.
a. 긴 주소의 MD5 야드를 계산하고 32 비트 MD 코드를 4 개 단락으로 나눕니다. 각 섹션은 8 자입니다.
b. 16 진수로 a로 얻은 8 문자열을 참조하고 n * 6 1으로 표시된 n * 6 1의 수행 및 작동을 참조하십시오.
n * 6- 이진 번호를 얻으십시오
c. B로 얻은 숫자를 N 섹션으로 나누고 단락 당 6 자리로 나눈 다음 61 자리를 61 및 작업으로 수행합니다.
숫자는 인덱스 알파벳으로 해당 문자 또는 숫자로 사용되며 스티치는 길이 n의 짧은 URL입니다.
정적 최종 문자 [] 숫자 = { '0', '1', '2', '3', '4', '5', '6', '7', '8', 'A'B ', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', '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 ','l ','l ', ' ','z '};
public string shorten (문자열 longurl, int urllength) {if (urllength <0 || urllength> 6) {새로운 불법 행위 ( "URL의 길이는 0과 6"));} 문자열 md5hex = digestutils. MD5HEX (LongUrl); // 6 자리 바이너리는 0-9A-ZA-ZA-ZA-ZA-ZAING BINANGTH = URLLLENGTH * 6을 나타냅니다. , 이진; Long.Valueof (Substring, 1 6) 및 Binarylengthfixer. int charindex = valueof (haintring); (shorturl)! = null) {계속;} else {return shorturl;} // 4 가지 가능성이 이미 존재하는 경우 return null;}
2. 자체 added 시퀀스 :
a. 또는 시퀀스의 자체 평가는 값에서 62로 표시됩니다.
개인 Atomiclong Sequence = 새로운 Atomiclong (0); = 새로운 stringbuilder (true) {sbuilder. } return sbuilder.toString ();}
Maven 프로젝트의 코드는 2 개의 맵을 사용하여 실제로 사용하여 스토리지 길이의 URL의 상호 매핑을 시뮬레이션합니다.
이 기사는 모든 사람이 짧은 URL 서비스를 배우는 데 도움이되기를 바랍니다.