Как работает короткий URL?

Я подумываю о внедрении системы коротких / удобных URL-адресов в своей компании.

Я прочитал много статей о том, как это сделать. Я понимаю процесс, но у меня все еще есть вопросы: у нас есть сервер A и клиент B. Сервер A имеет всю логику для перезаписи и перенаправления URL. Но как может клиент B, внешний по отношению к этому серверу, но в том же домене, узнать, какое имя хоста или IP-адрес для http://server.A/theURL? Если имя «server.A» неизвестно клиенту, он вернет ошибку «неизвестный хост». Как вы можете «опубликовать» этот короткий URL-адрес «домен» в сети? Я не думаю, что вам нужно изменять файлы .hostname на каждом ПК ...

Спасибо,


person Gonan    schedule 31.07.2014    source источник
comment
ваш сервер выполнит постоянное перенаправление (301), и клиент получит эту информацию из этого первоначального запроса. предполагается, что у клиента есть доступ к этому серверу - он же не за брандмауэром и т. д.   -  person Deryck    schedule 31.07.2014
comment
да, но как клиент узнает, что короткий URL-адрес принадлежит этому серверу. должно быть сопоставление short.url с этим сервером. Как ты это делаешь?   -  person Gonan    schedule 31.07.2014
comment
Сопоставление выполняется через сервер A, как вы сказали в сообщении. После того, как короткий URL-адрес переведен в реальный, он отправляет этот URL-адрес клиенту B, а затем клиент B подключается как обычно.   -  person Deryck    schedule 31.07.2014
comment
Думаю, я не очень ясно объясняюсь. Если я попытаюсь прямо сейчас перейти на short.url / asdfasd, мой браузер скажет Неизвестный хост. Как мой компьютер может узнать IP или реальное имя хоста short.url. Это должен быть DNS-сервер или что-то в этом роде. Но если это во внутренней сети, как это сделать?   -  person Gonan    schedule 31.07.2014
comment
Да, именно поэтому в моем первом комментарии было сказано, что он не защищен брандмауэром и т. Д. Если это так, вы собираетесь использовать обратный прокси. Большинство веб-серверов могут это сделать, но я предпочитаю nginx. Это просто заставит внешний сервер (сервер A) общаться от имени любого, кто пытается получить доступ к short.url (например, как это делает клиент B). клиент B никогда не узнает реальный IP / имя хоста short.url, так как он будет видеть только сервер A снаружи   -  person Deryck    schedule 31.07.2014
comment
О, я вижу. Спасибо. Я попробую это.   -  person Gonan    schedule 01.08.2014


Ответы (2)


Я сделал это так, чтобы указать URL-адрес домена тщеславия на goo.gl. Затем запросите URL-адрес у сокращателя goo.gl, используя свой ключ API Google, затем я str_replace the url с моим тщеславным URL-адресом и вывожу его в качестве окончательного решения.

person Aaron    schedule 28.01.2015

Рассмотрите возможность использования (бесплатных) API-интерфейсов от основных служб сокращения URL-адресов:

BITLY https://dev.bitly.com (наиболее известный)

КЛИКМЕТР http://clickmeter.com/api (лучшая аналитика)

GOO.GL https://developers.google.com/url-shortener (простой)

OWLY (интегрировано с HootSuite)

ПОВТОРНО https://developers.rebrandly.com (используйте свое доменное имя)

SHORTE.ST https://shorte.st/howitworks (монетизация кликов)

person Davide De Guz    schedule 06.10.2016
comment
Идея заключалась в том, чтобы понять, как это работает, и реализовать это самостоятельно, а не просто использовать внешний сервис. - person Gonan; 12.10.2016