Руководства

Фронтенд и бэкенд: в чём разница?

Фронтенд — это часть приложения, которая работает в браузере пользователя: страницы, кнопки, формы и анимации, которые он видит и на которые кликает. Бэкенд — это часть, которая работает на сервере, невидимом для пользователя: он хранит и извлекает данные, применяет бизнес-правила, проверяет, кому что разрешено, и взаимодействует с другими сервисами, например платёжными системами и электронной почтой. Две части общаются через API, и вместе с базой данных они образуют «full-stack» приложение.

Почему это важно, когда вы создаёте приложение с ИИ

Когда вы описываете приложение ИИ-конструктору, вы описываете сразу обе части, даже если не замечаете этого. Фраза «клиенты могут забронировать время» подразумевает форму бронирования (фронтенд), правила о том, какие слоты свободны (бэкенд), и место, где сохраняются брони (база данных).

Понимание этого разделения помогает на практике в трёх случаях:

  1. Безопасность. Всё, что находится во фронтенде, пользователь может увидеть и изменить. Правила и секреты должны храниться в бэкенде.
  2. Отладка. «Кнопка не реагирует» и «кнопка реагирует, но ничего не сохраняется» указывают на разные части приложения. Если вы точно скажете, что видите, ИИ быстрее найдёт причину.
  3. Хостинг и стоимость. Сайт только с фронтендом дёшев и прост в размещении. Бэкенд должен где-то работать, и это влияет на то, сколько вы платите и как приложение ведёт себя в простое.

Бытовая аналогия

Представьте ресторан.

Фронтенд — это зал: меню, столики, интерьер, официант, который принимает заказ. Он создан для гостей, и они видят и трогают всё, что там есть.

Бэкенд — это кухня и офис: повара, склад, касса и правила менеджера о том, кому положена скидка. Гости туда не заходят и не должны иметь доступа.

API — это окно между ними: стойка, куда поступают заказы и откуда выдаются блюда, в согласованном формате. База данных — это склад и книга заказов.

Гость может переписать свой заказ на бланке (фронтенд находится под его контролем), но кухня всё равно решает, что готовить и сколько это стоит. Поэтому важные проверки должны находиться в глубине, на стороне бэкенда.

Что делает каждая сторона

ФронтендБэкенд
Где работаетНа устройстве пользователя, в браузереНа сервере, которым вы (или ваш хостинг) управляете
Основная задачаПоказывать информацию, принимать ввод, реагировать на кликиХранить данные, применять правила, контролировать права, вызывать другие сервисы
Может ли пользователь увидеть и изменить код?Да — он загружается в браузер пользователяНет
Может ли хранить секретные ключи API?НетДа, в переменных окружения
Распространённые технологииHTML, CSS, JavaScript/TypeScript, React, Vue, Svelte, TailwindNode.js, Python (FastAPI, Django), C#, Java, Go, Ruby
Что обычно ломаетсяВёрстка едет на телефоне, кнопка ничего не делает, медленная страницаДанные не сохраняются, показываются неверные данные, ошибки, дыры в безопасности

Некоторые фреймворки стирают границу. Например, Next.js позволяет держать в одном проекте и код для браузера, и код для сервера. Суть остаётся прежней: всегда важно понять, где выполняется этот фрагмент.

Пример: бронирование занятия

Вот что происходит, когда кто-то записывается на занятие йогой, шаг за шагом.

ШагГдеЧто происходит
1ФронтендСтраница расписания загружается и запрашивает у бэкенда занятия на эту неделю.
2БэкендЧитает занятия и брони из базы данных, считает свободные места и возвращает список в формате JSON.
3ФронтендПоказывает каждое занятие с временем, преподавателем и количеством свободных мест.
4ФронтендПользователь выбирает занятие и вводит имя и email. Форма проверяет, похож ли email на правильный (это для удобства, а не гарантия).
5Фронтенд → БэкендОтправляет запрос POST /api/bookings через API.
6БэкендПовторно проверяет данные, убеждается, что занятие не заполнено, сохраняет бронь и с помощью секретного ключа просит сервис рассылки отправить подтверждение.
7Бэкенд → ФронтендВозвращает «забронировано» или «извините, мест нет».
8ФронтендПоказывает экран подтверждения.

Обратите внимание на шаги 4 и 6: данные проверяются дважды. Проверка на фронтенде даёт мгновенную обратную связь; проверка на бэкенде — та, которая действительно важна, потому что настойчивый пользователь может обойти фронтенд полностью.

Основные термины

ТерминЗначение
Клиент / серверКлиент — это браузер (или приложение), который делает запросы; сервер на них отвечает.
UIПользовательский интерфейс — экраны и элементы управления.
APIСогласованный способ, которым фронтенд запрашивает у бэкенда данные или действия.
EndpointОдин конкретный адрес API, например /api/bookings.
Full stackФронтенд + бэкенд + база данных вместе. См. что такое full-stack приложение.
Статический сайтФронтенд без собственного бэкенда; для всех одни и те же файлы.
SPAОдностраничное приложение: фронтенд, который обновляет страницу в браузере, не загружая новые.
Серверный рендеринг (SSR)Сервер формирует HTML страницы до отправки, что может ускорять загрузку и помогать SEO.
Переменные окруженияНастройки и секреты, которые передаются бэкенду во время работы и хранятся вне кода.

Нужен ли вашему приложению бэкенд?

Если ваше приложение…Нужен ли бэкенд?
Показывает информацию, одинаковую для всехНет
Содержит контактную форму, которая только отправляет письмо вамОбычно небольшой, или сервис форм
Сохраняет данные, которые увидят другие людиДа
Требует входа и содержит личные данныеДа
Принимает платежиДа — хотя бы для создания оплаты и приёма вебхуков платежей
Использует платный ИИ или другой API с секретным ключомДа, чтобы ключ не попадал в браузер

Частые ошибки и заблуждения

  • Секретные ключи во фронтенде. Их увидит любой, кто откроет инструменты разработчика в браузере. Это самая распространённая серьёзная ошибка в приложениях, созданных с ИИ.
  • Правила только во фронтенде. Скрыть кнопку «удалить» для не-администраторов — это не защита; бэкенд обязан отклонять такой запрос.
  • Считать бэкенд «просто базой данных». База хранит данные. Бэкенд решает, кто может их читать и менять и как.
  • Думать, что JavaScript — это фронтенд. JavaScript и TypeScript работают и на серверах, с Node.js.
  • Искать проблему не в той части. Если страница выглядит правильно, а данные неверны, проблема обычно в бэкенде или базе, а не в дизайне.
  • Переусложнять. Портфолио не нужен собственный бэкенд. Он добавляет стоимость и движущиеся части.

Что просить у ИИ-конструктора

  • «Какие части этого приложения работают в браузере, а какие на сервере?»
  • «Перенеси все ключи API в бэкенд и читай их из переменных окружения.»
  • «Проверяй каждую форму на сервере, а не только в браузере.»
  • «Сделай так, чтобы на бэкенде удалять брони мог только администратор.»
  • «Страница выглядит нормально, но данные не сохраняются — проверь в логах бэкенда запрос.»
  • «Это простой маркетинговый сайт; оставь его только фронтендом, пока не понадобится бэкенд.»

Фронтенд и бэкенд в Mythex

Новый проект в Mythex стартует с фронтенда на Vite, React, TypeScript и Tailwind, а агент добавляет бэкенд, когда приложению он нужен. Можно также попросить отдельный API на Node, Python (FastAPI), C# или Java, работающий рядом с фронтендом в том же проекте. В предпросмотре можно переключаться между сайтом и API-сервером, а при публикации разворачиваются обе части, при необходимости с базой данных и файловым хранилищем. В документации описаны многосервисные приложения, руководство по веб-хостингу объясняет, где работает каждая половина после запуска, а шаблоны приложений — быстрый способ увидеть примеры full-stack приложений.

Вопросы

В чём разница между фронтендом и бэкендом?

Фронтенд — это часть приложения, которая работает в браузере пользователя: страницы, кнопки и формы, которые он видит и на которые нажимает. Бэкенд работает на сервере, который пользователь никогда не видит: он хранит данные, применяет бизнес-правила, проверяет права доступа и взаимодействует с другими сервисами.

Нужен ли бэкенд каждому приложению?

Нет. Маркетинговый сайт, портфолио или простой лендинг может обойтись только фронтендом. Как только приложению нужно сохранять общие данные, авторизовать пользователей, принимать платежи или использовать секретные ключи API, без бэкенда какого-то вида не обойтись.

HTML — это фронтенд или бэкенд?

HTML, CSS и JavaScript, которые работают в браузере, относятся к фронтенду. JavaScript может работать и на сервере с помощью Node.js, и тогда это уже бэкенд. Решает не язык, а то, где выполняется код.

Что значит full stack?

Full stack означает, что человек или проект охватывает и фронтенд, и бэкенд (обычно и базу данных). Full-stack приложение состоит из всех трёх частей, а full-stack разработчик работает со всеми ними.

Mythex · Pricing · Создавайте что угодно с ИИ · Шаблоны сайтов и приложений · Сравнения Mythex · Глоссарий по созданию приложений с ИИ · Бесплатные инструменты для создания приложений с ИИ · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)