Есть доменное имя, типа example.com которое нужно превратить в валидную ссылку в HTML шаблоне, не зная при этом истинного протокола (HTTP(S)).
Сайт может быть HTTP-only, или наоборот, HTTPS-only, и нужно безошибочно открывать правильный.
Ссылки без протокола резолвяться как локальные, а с просто двойным слэшем (//example.com) резолвится на тот протокол, который используется на странице.
Браузеры (напр. Хром) как то умеет резолвиться нужный адрес по домену, но как это сделать в простом HTML?
Допускается использование JS.
На самом деле, это проблема конкретных сайтов - они всегда должны быть доступны по HTTP, пусть и с безусловным редиректом на HTTPS. Соответственно, достаточно просто указывать протокол http://.
Но если сильно хочется заморочиться, то можно на клиенте в фоне делать запрос на адрес сайта с https:// и если придёт какой-то ответ 2XX или 3XX, подставлять этот протокол.
Другого способа узнать, работает ли сайт по тому или иному протоколу, кроме как сделать туда запрос, не существует.