Есть клиентская часть, а есть серверная.
html, css и js (js - раньше, сейчас он еще и серверный язык) - это клиентская часть, а бд, php и прочее - серверная.
Вот простой пример: представьте сайт вроде ВКонтакте, но гораздо проще, есть только твой id, имя и фамилия.
И у нас есть следующий вариант, создавать для каждого пользователя на сервере папку (/id), куда вкладывать статичный файл index.html с фамилией и именем.
Другой вариант - при заходе на сайт Вы отправляете серверу свой id, сервер находит в своей базе данных по номеру id имя, фамилию и выводит их в шаблон. Шаблон одинаков для всех, но имена и фамилии будут разные, и отдает этот файл клиенту, то есть Вашему браузеру.
В итоге, в первом случае мы имеем огромное количество папок и файлов. Если Вам вдруг захочется добавить краткий текст описания или логотип - Вам придется править каждый файл index.html в каждой папке. Во втором случае Вы имеете один файл index.html и огромную таблицу с данными. Если захотите что-то изменить - править надо всего лишь один файл.
Ну и это конечно помимо других возможностей сервера: отправка почты, обработка форм и т.д.