На сегодняшний день в интернете можно найти очень много сайтов для сокращения ссылок. Первый из них была TinyURL. Она была создана в 2002-ом году. И на сегодняшний день она является одним из самых популярных сайтов для сокращения ссылок.
Также в список самих популярных сайтов в этой сфере входят Bitly и Goo.Gl. Про сокращения URL адресов можете прочитать в Википедии.
Я активно пользовался этими сервисамы (особенно сервисом goo.gl), как в один прекрасный день мне пришло в голову мысль: «А если я создам свой собственный сервис для сокращении ссылок»?
И начал я думать, как же создать такой же сервис, как, например, Bitly? Я знал только одно — в основе всех этих сервисов стоит перенаправление URL. Я специально не гуглил: хотел самому решить эту проблему. И решил! И не только проблему… Я также решил поделится этим с вами. И в этом посте я собираюсь описать теорию создания таких сервисов. К практике перейдем потом…
Как я уже сказал, в основа этих сайтов является перенаправление ссылок. Схема очень проста.
Пользователь вводит в поле ссылку, которую нужно сократить, и нажимает на конпку для сокращения. На сервере начинает работать основной скрипт. Он отправляет 1 или 3 (или больше) запросов к БД (в зависимости от ссылки). А что он, собственно, делает?
Как видите, схема действительна проста. Но это ещё не все. надо ещё и настраивать перенаправление.
Для этого необходима создать файл, который будет перенаправлять к длинной ссылке. Назовем его, например, r.php. Потом в файле .htaccess пишем, что при запросе типа example.com/key надо запружать страницу example.com/r.php?key=key, где key — это ключ короткой ссылки.
Файл r.php ищет в БД запись с ключом key. Если не нашел, то выводит запись об ошибке. В противном случае (если нашел) скрипт перенаправляет нас к длинной ссылке.
Вот и все. Вот так работают сервисы сокращения ссылок. В следующих постах я перейду к практике создания простого сервиса для сокращения ссылок.
Также в список самих популярных сайтов в этой сфере входят Bitly и Goo.Gl. Про сокращения URL адресов можете прочитать в Википедии.
Я активно пользовался этими сервисамы (особенно сервисом goo.gl), как в один прекрасный день мне пришло в голову мысль: «А если я создам свой собственный сервис для сокращении ссылок»?
И начал я думать, как же создать такой же сервис, как, например, Bitly? Я знал только одно — в основе всех этих сервисов стоит перенаправление URL. Я специально не гуглил: хотел самому решить эту проблему. И решил! И не только проблему… Я также решил поделится этим с вами. И в этом посте я собираюсь описать теорию создания таких сервисов. К практике перейдем потом…
Как я уже сказал, в основа этих сайтов является перенаправление ссылок. Схема очень проста.
Пользователь вводит в поле ссылку, которую нужно сократить, и нажимает на конпку для сокращения. На сервере начинает работать основной скрипт. Он отправляет 1 или 3 (или больше) запросов к БД (в зависимости от ссылки). А что он, собственно, делает?
- во-первых, он смотрит, присутствует ли в БД ссылка, которая вводил пользователь. Если присутствует, он из базы данных получает ключ короткой ссылки и идет сразу к пункту 5. В противном случае, он продолжает следующие шаги,
- поскольку в БД такого хэша нет, скрипт создает новый хэш определённой длины,
- скрипт ищет в БД созданный хэш. Если он нашёл её, тогда возвращается к пункту 2 и создает новый хэш. В противном случае, идет дальше,
- если скрипт дошёл до этого пункта, значит хэш в БД отсутствует. Он записывает в БД хэш с длинной ссылкой,
- скрипт выводит на экран ключ ссылки.
Как видите, схема действительна проста. Но это ещё не все. надо ещё и настраивать перенаправление.
Для этого необходима создать файл, который будет перенаправлять к длинной ссылке. Назовем его, например, r.php. Потом в файле .htaccess пишем, что при запросе типа example.com/key надо запружать страницу example.com/r.php?key=key, где key — это ключ короткой ссылки.
Файл r.php ищет в БД запись с ключом key. Если не нашел, то выводит запись об ошибке. В противном случае (если нашел) скрипт перенаправляет нас к длинной ссылке.
Вот и все. Вот так работают сервисы сокращения ссылок. В следующих постах я перейду к практике создания простого сервиса для сокращения ссылок.