Создание ссылок и связанные с этим проблемы

Современное программное обеспечение иногда дает пользователю возможность автоматически создать гиперссылку, просто введя строку, которая выглядит как веб- адрес, адрес электронной почты или сетевой путь. Например, ввод «www.icann.org» в сообщение электронной почты может привести к автоматическому созданию активной ссылки на сайт http://www.icann.org, если приложение распознает «www.» как начальную метку или «.org» как TLD.

Создание ссылки — это действие, при котором приложение принимает строку и динамически определяет, следует ли создать гиперссылку на местоположение в интернете (http:// или https://) или адрес электронной почты (mailto:). При этом механизм создания ссылок должен слаженно работать для всех правильно сформированных веб-адресов, адресов электронной почты и сетевых путей.

При генерации ссылок применяются алгоритмы и правила, созданные разработчиками программного обеспечения для определения того, следует ли считать строку ссылкой или нет. Это связано с возможностями человека идентифицировать строку как доменное имя. Хотя браузеры, почтовые клиенты и текстовые редакторы — очевидные места применения таких алгоритмов и правил, есть множество других приложений которые их используют.

Рекомендации по эффективной практике



  1. Старайтесь создавать ссылки на основе явных префиксов протокола (напр., «https://», «ftp://», «mailto:»), но выполняйте такую операцию, только если остальная часть строки сформирована правильно.
    Пример строки Ожидаемое поведение/результат
    example.com Ссылка не создается, так как протокол не указан.
    http://example.com Гиперссылка создается, поскольку протокол четко указан.
    http:example.com Ссылка не создается из-за неправильного синтаксиса (отсутствует //).
    http://example.a Ссылка не создается, потому что «a» не является TLD.
    http://example..ab Ссылка не создается из-за неправильного синтаксиса (две точки подряд).
    http://普遍接受-测试.世界 Гиперссылка создается, поскольку протокол четко указан.


  2. Старайтесь создавать ссылки на основе неявных префиксов протоколов (напр., «www» подразумевает «http://www»).
    Пример строки Ожидаемое поведение/результат
    www.example.com Гиперссылка создается, поскольку протокол косвенно указан
    label@example.com Создается ссылка типа mailto: label@example.com, поскольку протокол косвенно указан.


  3. Двунаправленный URL-адрес в гипертексте может содержать служебные коды, влияющие на направление отображения текста в нем. В ссылке следует сохранить то же самое направление отображения.
  4. Если TLD используется в качестве отличительного признака для определения является ли строка ссылкой, то должен использоваться актуальный перечень TLD, который следует часто обновлять.