Backend
Backend — серверная часть сайта: приложение, база данных и API, которые обрабатывают запросы вне браузера. Ошибки этой части сообщают клиенту кодами HTTP класса 5xx, например 500.
Содержание
- 01Backend: серверная часть, которую посетитель не видит
- 02Из чего состоит серверная часть: приложение, база, кеш и очередь
- 03Языки и фреймворки backend: PHP, Python, Java, Go, Node.js
- 04Базы данных: реляционные и нереляционные
- 05Как backend обрабатывает запрос: расчёт нагрузки
- 06Безопасность и надёжность: что backend делает за кулисами
- 07С чем путают backend: сервер, хостинг, CMS
- 08Частые вопросы
Backend: серверная часть, которую посетитель не видит
Backend (бэкенд, серверная часть) — это программа и данные, которые работают на сервере и обслуживают сайт или приложение. Посетитель видит кнопку «Оформить заказ», но проверку остатков на складе, расчёт скидки, запись в базу и отправку письма делает именно backend. Его код выполняется не в браузере, а на удалённой машине, поэтому пользователь не может его ни посмотреть, ни изменить.
Слово пришло из англоязычной разработки: back end — «задняя сторона», в противовес front end. Самые ранние динамические сайты уже работали по этой схеме: браузер просит страницу, серверная программа собирает её из данных и отдаёт ответ. Менялись инструменты, суть осталась: клиент спрашивает, сервер отвечает.
Из чего состоит серверная часть: приложение, база, кеш и очередь
| Компонент | Задача | Примеры |
|---|---|---|
| Веб-сервер | Принимает запросы из сети и передаёт приложению | Nginx, Apache |
| Приложение | Бизнес-логика: правила, расчёты, проверки | Код на PHP, Python, Java, Go |
| База данных | Постоянное хранение информации | PostgreSQL, MySQL, MongoDB |
| Кеш | Быстрый доступ к повторяющимся ответам в оперативной памяти | Redis |
| Очередь задач | Фоновые операции: письма, выгрузки, отчёты | RabbitMQ, очереди внутри фреймворка |
Снаружи эти части общаются с остальным миром через API — набор адресов и правил, по которым frontend или другая система просит данные и получает ответ.
Языки и фреймворки backend: PHP, Python, Java, Go, Node.js
Единственно правильного языка для серверной части нет. Выбор зависит от задачи, команды и уже существующего кода.
| Язык | Фреймворки | Типичные задачи |
|---|---|---|
| PHP | Laravel, Symfony | Сайты и интернет-магазины, системы на WordPress и 1С-Битрикс |
| Python | Django, FastAPI | Веб-сервисы, обработка данных, интеграции с нейросетями |
| Java | Spring | Корпоративные системы, банковские и учётные сервисы |
| Go | Gin, стандартная библиотека | Высоконагруженные сервисы с большим числом соединений |
| JavaScript (Node.js) | Express, NestJS | Единый язык на сервере и в браузере, API для интерфейсов |
Для справки: PHP создал Расмус Лердорф, первый публичный релиз вышел в 1995 году. Node.js разработал Райан Даль, первый выпуск датирован 27 мая 2009 года, работает он на движке V8. На PHP написана платформа 1С-Битрикс, поэтому серверную часть сайтов на ней развивают именно на этом языке, но для нового сервиса команда выбирает язык под задачу, а не по привычке.
Базы данных: реляционные и нереляционные
В реляционных базах (PostgreSQL, MySQL) данные лежат в таблицах со связями: покупатели, товары, заказы. Главное их свойство — транзакции. Когда клиент оформляет заказ, система списывает остаток и создаёт запись о заказе. Либо выполнятся оба действия, либо ни одно: не возникнет заказа без списания или списания без заказа.
Нереляционные базы устроены иначе. MongoDB хранит документы со свободной структурой, Redis держит пары «ключ — значение» в оперативной памяти и отвечает быстрее, чем база на диске. Поэтому Redis используют для кеша и сессий, а не как основное хранилище. Для типового сайта базовый выбор — реляционная база, остальное подключают по мере нужды.
Как backend обрабатывает запрос: расчёт нагрузки
- Веб-сервер получает запрос и отдаёт его приложению.
- Приложение проверяет, кто спрашивает и что ему разрешено.
- Если ответ уже лежит в кеше, он возвращается сразу. Если нет — идёт запрос в базу.
- Данные собираются в ответ, обычно в формате JSON, и уходят клиенту.
- Ошибка попадает в журнал, чтобы разработчик нашёл причину.
Допустим, в день акции на сайт приходит 3 000 человек в час, каждый открывает 5 страниц, а каждая страница делает 4 запроса к серверу. Получается 60 000 запросов в час, или около 17 в секунду в среднем. В пике нагрузка вырастает в разы; если взять условный коэффициент 5, это уже 83 запроса в секунду. Если каждый запрос идёт в базу, сервер упирается в неё первой. Кеш на популярные данные снимает с базы часть этой нагрузки.
Безопасность и надёжность: что backend делает за кулисами
- Проверка данных. Любое значение из формы считается недоверенным: сервер валидирует его, а в запросы к базе подставляет через параметры, чтобы закрыть SQL-инъекции.
- Пароли. Хранятся только в виде хеша со специальным алгоритмом вроде bcrypt, а не открытым текстом.
- Права доступа. Пользователь видит только свои заказы, менеджер — заказы клиентов, администратор — настройки.
- Защищённое соединение. Передачу данных шифрует SSL-сертификат, но настраивают его на уровне сервера.
- Персональные данные. По части 5 статьи 18 закона 152-ФЗ при сборе персональных данных, в том числе через интернет, запись, систематизация, накопление, хранение, уточнение и извлечение данных граждан России с использованием баз за пределами страны не допускаются, за исключением случаев из пунктов 2, 3, 4 и 8 части 1 статьи 6. Где физически лежит база заявок, решает архитектура backend; требования закона разобраны на странице соответствия 152-ФЗ.
С чем путают backend: сервер, хостинг, CMS
- Сервер — компьютер, а backend — программа на нём. Путаница возникает потому, что обе сущности называют «сервером».
- Хостинг — место, где серверная часть запущена и подключена к сети, см. термин «Хостинг».
- CMS — готовый backend с админкой. В WordPress или Битрикс серверная часть уже написана, CMS лишь настраивают, а в проекте на заказ её пишут под бизнес-процессы.
Если нужен сайт с личным кабинетом, интеграциями и оплатой, серверную часть проектируют на этапе разработки сайта, а для маркетплейсов и SaaS — в рамках сложной разработки.
Частые вопросы
Что такое backend простыми словами?
Это внутренняя часть сайта, которая работает на сервере и скрыта от посетителя. Она принимает запросы, обращается к базе данных, считает, проверяет права и возвращает результат. Когда вы входите в личный кабинет, интерфейс показывает frontend, а проверку пароля и загрузку ваших данных выполняет backend.
Что делает backend-разработчик?
Проектирует базу данных, пишет серверную логику и API, настраивает авторизацию, интеграции с платёжными системами, CRM и складскими программами, следит за безопасностью и скоростью ответов. Ещё он разбирает ошибки по журналам и готовит сервис к росту нагрузки.
Какой язык программирования выбрать для backend?
Выбирайте под задачу и команду, а не по рейтингам. PHP подойдёт для сайтов и интернет-магазинов, Python для сервисов с обработкой данных, Java для крупных корпоративных систем, Go и Node.js для сервисов с большим числом соединений. Если проект продолжит развиваться, решающим становится вопрос: кто будет его поддерживать.
Нужен ли backend сайту-визитке или лендингу?
Минимальный нужен почти всегда: чтобы принимать заявки из формы, отправлять уведомления и сохранять обращения. Для простых случаев хватает готовой CMS или конструктора, где серверная часть уже есть. Отдельный backend пишут, когда появляются личный кабинет, каталог со сложной логикой, интеграции или свой расчёт стоимости.
Что означает ошибка 500 на сайте?
Код 500 обозначает внутреннюю ошибку сервера: приложение не смогло обработать корректный запрос. Причина обычно в самом backend: сбой в коде, недоступная база данных, нехватка памяти или неверная настройка. Посетитель её исправить не может, ошибку находят по журналам сервера и устраняют разработчик или служба поддержки сайта.