Давайте немного поговорим о вещах, которые не являются веб-фреймворком.
На самом базовом уровне Интернета у вас есть веб-страница. Обычно это глупая страница с текстом, может быть, встроенным видео или несколькими изображениями. Это не (или, по крайней мере, в идеале, не должно) беспокоиться о том, откуда берется материал, который он отображает. Вам не нужны никакие скрипты, базы данных и т. Д., Чтобы иметь статическую веб-страницу. Типичные используемые инструменты: HTML, CSS, Javascript.
Тогда у вас есть системы управления контентом (CMS), такие как, скажем, Wordpress. Они добавляют немного больше функциональности вашему сайту, но на самом деле все, что они делают, - это предоставляют вам возможность управлять своей коллекцией веб-страниц - создавать их на лету и т. Д. Вы можете использовать их как есть и взаимодействовать с CMS через администрацию. страницы, которые они предоставляют. Вы можете расширить некоторые из них (например, Wordpress имеет архитектуру плагинов), но, как правило, вас не интересует, как они работают, или их конкретный API.
И , затем у вас есть веб-фреймворки. Они позволяют вам делать все остальное в структурированной форме. Вам не нужно иметь каркас для создания сайта на основе базы данных, но это может помочь. Фреймворки покупают вам много удобства благодаря соглашению. Например, если вы хотите добавить новый раздел на свой сайт, вы можете создать «модуль», загрузить его в известное место, возможно обновить файл конфигурации, и он более или менее подключится к вашему сайту.
Структура - это то, что может заботиться о деталях вашей базы данных или извлекать данные из других служб (или предоставлять данные через службу). Он может создавать страницы для вас автоматически на основе шаблона. Он может позаботиться о «предварительном подтверждении» ваших ссылок с помощью URL-маршрутизации. Это может помочь вам удостовериться, что ни одна из ссылок вашего сайта никогда не сломается - благодаря динамическому определению, где находятся страницы, а не вы вручную жестко кодируете ссылки. Они позволяют вам отделить ваши внутренние проблемы (бизнес-логика, доступ к данным, аутентификация и т. Д.) От ваших представлений, что позволяет вам легко обновлять дизайн страницы, если вам так хочется.
Чтобы конкретно ответить на ваши вопросы ...
Веб-фреймворки генерируют HTML-страницы, обслуживаемые по HTTP. Здесь нет особой магии. Вы часто можете писать одни и те же страницы самостоятельно, но фреймворки позволяют, например, определить шаблон и отображать другую страницу в соответствии с вашими потребностями без вашего непосредственного участия вручную.
Веб-фреймворки не хранят данные. Они могут получить к нему доступ или предоставить его, но сами по себе они не являются базой данных. Веб-фреймворки работают на стороне сервера и обслуживают страницы для клиента и обрабатывают входные данные клиента.
Фреймворки, такие как Django и Rails, используются на серверной части. Существуют и другие фреймворки, такие как jQuery, которые можно использовать для написания сценариев на стороне клиента, но в этом смысле они не являются веб-фреймворками. Обычно, когда кто-то говорит «веб-фреймворк», он имеет в виду серверную сторону.
Надеюсь, это поможет.