Если коротко, сайт — некий сервер, который на определённый запрос от браузера отдаёт определённый ответ. Самый частый случай будет как раз html и т.д. Сам html формируется путём подстановки данных в шаблон. При этом у шаблонов свой диалект языка. Данные в "сыром" виде (без html) хранятся в базе данных. У базы данных тоже свой язык запросов и определённые правила работы с ними. Конечную склейку уже осуществляет серверный язык. Очень часто помимо серверного языка нужно знать саму доменную область веб программирования — это фреймворк, протокол http, принципы кэширование, принципы построения распределённых систем, авторизация и аутентификация.
Вообще, много надо знать и для этого можно пройти курс на
udacity.