как реализуется генерация html файлов?
Никак. Никаких файлов не генерируется. Генерируется строка, содержащая какой-то шаблонный набор тегов (собственно так и называется - шаблон), и основное содержимое страницы (например статья или список статей), обычно хранящееся в базе данных или в другом хранилище. Эта строка отдается клиенту с соответствующими заголовками, объясняющими клиенту что за данные передаются (например "это будет хтмл" или "кодировка данных утф-8", естественно в более формальном виде, гуглите http headers).
В урл указываются некоторые параметры, через get переменные (www.trusy.ru/?variant1=a&variant2=g) или через параметры пути (www.trusy.ru/variant1/variant2), которые на сервере преобразуются в переменные и уже по ним выбираются нужные для отображения данные.
Гуглить по теме:
единая точка входа
роутинг
MVC