Да, вы можете обслуживать HTML-файлы, используя FTP. Тем не менее, FTP является протоколом с большим весом и состоянием, и он предполагает, что вы останетесь на том же сервере. Он оптимизирован для загрузки больших файлов (где накладные расходы амортизируются по размеру и количеству загрузок) HTTP очень легок (вы можете общаться с сервером HTTP с помощью TELNET намного проще, чем с FTP, особенно до PASSIVE FTP) и разработан на основе HTML - концепция, которая заключается в том, что в процессе навигации вы будете посещать множество различных серверов и получать только пару файлов одновременно с каждого.
Gopher существовал до HTML и был очень популярен. Это был также легкий протокол. У HTML просто не было представления и простоты ввода.
Короткий ответ: люди изобрели всевозможные протоколы по разным причинам (например, докторские диссертации) - HTTP удалось прийти в нужное время и иметь правильный набор функций.
Кстати, CGI изначально даже не был частью HTTP. Это произошло позже - и было гораздо проще вставить CGI в HTTP, чем в FTP из-за простого протокола без сохранения состояния.
О, и до HTTP / HTML не было "сети". Веб нуждается в HTTP, потому что HTTP создал сеть.