Zastanawiam się, jak działa narzędzie do skracania adresów URL, na przykład jak wyodrębniają tekst z paska adresu i mapują go na poprawny adres URL, a później przekierowują. Jakiego języka programowania używają? Jak utrzymują historię mapowania? W jaki sposób zapewniają niepowtarzalność skróconego adresu URL? W jaki sposób laik może odmapować go bez odwiedzania adresu URL?
url
url-shortener
tinyurl
prap19
źródło
źródło
Odpowiedzi:
Wiki jest twoim przyjacielem
Zasadniczo witryna o krótszej nazwie jest używana jako symbol zastępczy, na przykład bit.ly.
Następnie bit.ly generuje klucz do podania przez użytkownika, który jest generowany losowo, aby się nie powtarzał. Mając 35 opcji znaków i około 8 wartości, wykonaj obliczenia. To dużo możliwych kluczy. Jeśli adres URL jest równy wcześniej istniejącemu kluczowi, pamiętam, że przeczytałem gdzieś, że oni również ponownie używają kluczy.
Tak naprawdę nie używają określonego języka programowania, po prostu używają prostego przekierowania URL, które, jak sądzę, można zrobić za pomocą HTML.
źródło
Skracacze adresów URL po prostu generują krótki kod, mapują docelowy adres URL na krótki kod i dostarczają nowy adres URL. Odwiedzenie adresu URL powoduje wyszukanie bazy danych z krótkim kodem jako kluczem i przekierowanie do docelowego adresu URL. Nie ma powiązania algorytmicznego między skróconym adresem URL a docelowym adresem URL, więc nie można go „odmapować” bez przechodzenia przez systemy skracania adresów URL.
Możesz to zrobić za pomocą dowolnego języka programowania i magazynu danych. Generowanie kodu jest również proste, aby zapewnić unikalność; gdybyś miał zwiększający się podstawowy klucz całkowity, mógłbyś po prostu zakodować klucz jako base62 i go obsłużyć. Ponieważ kody mają charakter przyrostowy, nigdy nie będziesz miał konfliktu.
źródło
Proces jest właściwie dość prosty: istnieje skrypt, który pyta o adres URL, generuje losowy ciąg (i sprawdza, czy ten ciąg nie jest już używany) i umieszcza go w jakiejś bazie danych. Kiedy żądasz adresu URL, inny skrypt szuka w bazie danych losowego ciągu, a jeśli zostanie znaleziony, przekierowuje Cię do witryny.
Jest to oczywiście bardziej skomplikowane w produkcji ze względu na potrzebne funkcje, takie jak zapobieganie nadużyciom, filtrowanie adresów URL, zapobieganie spamowi, weryfikacja adresów URL itp. Ale są one dość proste do wdrożenia.
Język jest nieistotny, w większości każdy to zrobi.
źródło
<key, url>