предисловие
Только лысая голова может стать сильнее.
Текст был включен в мой репозиторий GitHub, добро пожаловать, звезда:GitHub.com/Zhongf UC очень…
Недавно поступил запрос, касающийсякороткая ссылкаСоответствующие знания, поэтому я пошел проверить соответствующую информацию и поделюсь ею с вами здесь.
Учебное пособие по сборке, начиная с 0 и шаг за шагом😂
1. Введение коротких ссылок
Например, сейчас мой адрес на GitHub такой:https://github.com/ZhongFuCheng3y/3y
(36 символов)
С помощью службы коротких ссылок Baidu я могу преобразовать указанный выше адрес вhttps://dwz.cn/LwlrfG4j
(23 символа)
Тогда зачем мне преобразовывать исходный URL вкорочесвязь? Например, мы отправляемКороткое сообщениеНапомните пользователям перейти на XXX, у XXX есть скидки, и часто в копии есть ссылка для перехода, чтобы пользователи могли быстро перейти на целевую страницу соответствующего мероприятия.
Отправка SMS требует затрат Стоимость SMS в основном состоит из двух аспектов:
- Количество отправленных людей (чем больше людей отправит, тем дороже будет натуральный текст сообщения, я не буду это объяснять)
- Количество слов, отправляемых текстовыми сообщениями (например, если общее количество слов в копии превышает 70 слов, будет выставлен счет за два текстовых сообщения, а если превысит 140 слов, будет выставлен счет за три текстовых сообщения)
Поэтому при отправке текстовых сообщений пользователям: либо ориентируйтесь на более точных и качественных пользователей, чтобы контролировать количество отправляемых сообщений, либо старайтесь максимально контролировать количество слов в тексте.
Очевидно, что если текстовое сообщение сопровождается обычным URL, количество слов, которое можно написать в реальном копирайтинге, невелико. Таким образом, мы можем обнаружить, что все URL-адреса SMS-рассылок крупных компанийкороткая ссылка.
Например, когда некоторые платформы публикуют новости, онилимит символов, если URL-адрес, который мы отправляем, слишком длинный, он будет легко ограничен:
Преимущества использования коротких ссылок:Коротко, мало символов, красиво, легко публиковать и распространять.
Во-вторых, как работает короткая ссылка?
Давайте сначала вернемся к сгенерированной короткой цепочке.https://dwz.cn/LwlrfG4j
Хоть эта ссылка и выглядит немного странно, но это все-таки ссылка.Из характеристик URL мы можем отличить:
-
dwz.cn
это доменное имя -
LwlrfG4j
является параметром
Давайте запросим короткую ссылку в браузере, чтобы увидеть, что происходит:
Принцип коротких ссылок на самом деле таков:
- Пропускать длинные ссылки через определенный
手段
создать короткую ссылку - То, что вы на самом деле посещаете, когда переходите по короткой ссылке,сервер коротких ссылок, а затем по параметрам короткой ссылкивернутьсяСоответствующая длинная ссылка
- перенаправить прыжок
2.1 Основная проблема, которую необходимо решить
Что мы можем узнать из вышеприведенного анализа, так это то, что нам действительно нужно сделать, как получить отLwlrfG4j
Подобный параметр находит соответствующий полный URL-адрес:https://github.com/ZhongFuCheng3y/3y
Первое, что пришло мне в голову, было: можно ли использовать алгоритм сжатия для преобразованияhttps://github.com/ZhongFuCheng3y/3y
Сжимать символы меньшего размера?
Очевидно, что нет, большинство алгоритмов сжатия нацелены накрупный текстЭто только работает, и сам URL-адрес не обязательно такой большой... Сжатый URL-адрес должен быть больше исходного URL-адреса.
Второе, что пришло мне в голову: могу ли я использовать алгоритм хеширования?все еще не могу, существует с хэшемхэш-коллизияПроблема
- Что такое хэш-коллизия? После хеширования двух разных строк (значений) полученные хеш-значения совпадают.
- Это означает, что две совершенно разные длинные цепочки получают точно такое же значение хеш-функции, и мойКороткие цепочки полагаются на хэши для поиска длинных цепочек.(В настоящее время одна короткая цепочка соответствует нескольким длинным цепочкам, что неразумно).
Что приходит на ум в третий раз?Не могу думать об этом.
Теперь промышленность использует большеУстройство нумерации(Автоинкремент ID)+шестнадцатеричное кодирование:
- Например, я буду
https://github.com/ZhongFuCheng3y/3y
рассматривается как10000
,Потом10000
Результат шестнадцатеричной кодировки:2Bi
Тогда мой URL-адрес короткой цепочки можно превратить вhttps://3y.cn/2Bi
,в3y.cn
это доменное имя,2Bi
Это параметр после шестнадцатеричного преобразования.
Зачем использовать шестнадцатеричное преобразование? 64-х шестнадцатеричное преобразование гораздо чаще слышно
- Преобразование в 62 базы происходит потому, что после преобразования в 62 базысодержит толькоЦифры + строчные + прописные буквы. И 64-шестнадцатеричное преобразование будет содержать
/
,+
Такие символы (символы, которые не соответствуют обычным URL-адресам) - Преобразование из десятичной в 62сократитьСимволы, если мы хотим 6-битные символы, там уже 56 миллиардов комбинаций.
Суммировать:
- После увеличения идентификатора он преобразуется в шестнадцатеричный, отношение сопоставления сохраняется в БД и генерируется короткая ссылка.
3. Ссылка текстового сообщения переходит прямо в приложение
Следующие источники контента:Things.163cloud.com/blog/art ICL…, Автор: Xixi Blowing Snow
В совокупности это:
- Через Deep Links (универсальные ссылки для iOS) вы можете щелкнуть ссылку SMS, чтобы напрямую вызвать приложение;
- Если система не поддерживает Deep Links по разным причинам, альтернативы
intent filter
, но появится всплывающее окно, позволяющее пользователю выбрать, какое приложение использовать для открытия ссылки; - Если пользователь не выбирает наше приложение, а выбирает браузер для открытия, то передайте
自定义 scheme
Попробуйте вызвать приложение; - Из-за технических и стоимостных проблем мы игнорируем неподдерживаемые
自定义 scheme
браузер.
Наконец
Эта статья предназначена в основном для того, чтобы кратко понять соответствующие знания о коротких ссылках, полный сервис коротких ссылок должен иметь больше вещей для рассмотрения, я не буду расширять его здесь (в конце концов, я на самом деле не написал это, вы можете продолжить по ссылке ниже обучение)~
Для получения дополнительной информации см.:
Эта книга была включена в мои избранные статьи на GitHub, добро пожаловать, звезда:GitHub.com/Zhongf UC очень…
рад вывестигалантерейные товарыОбщедоступный номер технологии Java:Java3y. В публичном аккаунтеБолее 300 оригинальных статейТехнические статьи, обширные видеоресурсы, красивые карты мозга,Следуйте, чтобы получить его!
Большое спасиботалантМы можем видеть здесь, если эта статья хорошо написана, я чувствую себя "три криво"что-тоеслипопросить лайк Пожалуйста, следите за ️ поделитесь пожалуйста 👥 Спросите сообщение 💬Это правда для меняочень полезно! ! !
Творить не легко Ваша поддержка и признание - самая большая мотивация для моего творчества Увидимся в следующей статье!