Для этих целей и существуют веб сервера с серверными скриптами и базами данных. Вместе они составляют так называемый backend. Суть бэкенда заключается в обработке запросов от клиента и формировании в ответ на эти запросы страниц либо данных, которые отдаются клиенту для дальнейшей обработки и/или отображения. В качестве сервера для бэкэнда может служить apache, nginx, express.js и др.. В качестве языка программирования для серверных скриптов может служить почти любой ЯП, но наиболее популярны PHP, python, node.js, Ruby и некоторые другие ЯП. Также существует множество бэкенд фрэймворков, написанных на различных языках. Целью этих фрэймворков служит разной степени упрощение/шаблонизация/автоматизация написания серверных скриптов.
Привожу небольшой пример, отвечающий на ваш вопрос и иллюстрирующий данный подход. Пример написан на nodejs и использует бэкенд фрэймворк express.js
var express = require('express');
var app = express();
app.get('/user/:user', function(req, res) {
var user = req.params.user;
// Тут дожны быть проверки
// прав клиента на просмотр
// запрашиваемых данных.
// запросы в бд за данными пользователя,
// и другими необходимыми данными.
// затем для пользователя
// указанного в запросе формируются
// данные для отдачи клиенту
// это могут быть как именно данные,
// например в формате json так и страница
// (частично и полностью)
// затем эти данные отдаются клиенту:
res.send(data);
});