Pull to refresh

Теория создания сервиса для сокращения ссылок

На сегодняшний день в интернете можно найти очень много сайтов для сокращения ссылок. Первый из них была TinyURL. Она была создана в 2002-ом году. И на сегодняшний день она является одним из самых популярных сайтов для сокращения ссылок.

Также в список самих популярных сайтов в этой сфере входят Bitly и Goo.Gl. Про сокращения URL адресов можете прочитать в Википедии.

Я активно пользовался этими сервисамы (особенно сервисом goo.gl), как в один прекрасный день мне пришло в голову мысль: «А если я создам свой собственный сервис для сокращении ссылок»?

И начал я думать, как же создать такой же сервис, как, например, Bitly? Я знал только одно — в основе всех этих сервисов стоит перенаправление URL. Я специально не гуглил: хотел самому решить эту проблему. И решил! И не только проблему… Я также решил поделится этим с вами. И в этом посте я собираюсь описать теорию создания таких сервисов. К практике перейдем потом…

Как я уже сказал, в основа этих сайтов является перенаправление ссылок. Схема очень проста.
Пользователь вводит в поле ссылку, которую нужно сократить, и нажимает на конпку для сокращения. На сервере начинает работать основной скрипт. Он отправляет 1 или 3 (или больше) запросов к БД (в зависимости от ссылки). А что он, собственно, делает?
  1. во-первых, он смотрит, присутствует ли в БД ссылка, которая вводил пользователь. Если присутствует, он из базы данных получает ключ короткой ссылки и идет сразу к пункту 5. В противном случае, он продолжает следующие шаги,
  2. поскольку в БД такого хэша нет, скрипт создает новый хэш определённой длины,
  3. скрипт ищет в БД созданный хэш. Если он нашёл её, тогда возвращается к пункту 2 и создает новый хэш. В противном случае, идет дальше,
  4. если скрипт дошёл до этого пункта, значит хэш в БД отсутствует. Он записывает в БД хэш с длинной ссылкой,
  5. скрипт выводит на экран ключ ссылки.

Как видите, схема действительна проста. Но это ещё не все. надо ещё и настраивать перенаправление.

Для этого необходима создать файл, который будет перенаправлять к длинной ссылке. Назовем его, например, r.php. Потом в файле .htaccess пишем, что при запросе типа example.com/key надо запружать страницу example.com/r.php?key=key, где key — это ключ короткой ссылки.

Файл r.php ищет в БД запись с ключом key. Если не нашел, то выводит запись об ошибке. В противном случае (если нашел) скрипт перенаправляет нас к длинной ссылке.

Вот и все. Вот так работают сервисы сокращения ссылок. В следующих постах я перейду к практике создания простого сервиса для сокращения ссылок.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.