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

Современное программное обеспечение иногда дает пользователю возможность автоматически создать гиперссылку, просто введя строку, которая выглядит как веб- адрес, адрес электронной почты или сетевой путь. Например, ввод «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. HTML, прилегающий к URL-адресам с двунаправленным текстом, может содержать коды, влияющие на направление отображения текста. В ссылке следует сохранить то же самое направление отображения.
  4. Если TLD используются в качестве «специального токена» для определения возможности создания ссылки, должны быть охвачены все TLD. Список TLD следует часто обновлять.