Реализация backend + frontend

Интересует вопрос, как на самом деле на нормальных сайтах работает связка frontend + backend.

Как это отделено друг от друга и как взаимодействует?Очевидно это не просто папка где всё вместе лежит(и html и php и js и т.д).

Как можно использовать разные технологии на одном и том же сайте? (на backend'e например: python,go и т.д, на фронтенде другие связки технологий.)

Интересует любая информация об этом всём. ссылки на статьи, книги, блоги ...что угодно

И по возможности (если такое существует) примеры развертывания сайтов, с разными технологиями.

Искал в интернете, но не особо нашел информацию(скорее всего не правильно искал).

Спасибо.


Ответы (3 шт):

Автор решения: Aziz Umarov

Да всё это про100. У вас наверняка есть статичный сайт который обращается к третьему серверу. Так вот этот сервер может быть реализован на чём угодно. Примеров масса. Backend - это программа предоставляющая услуги посредством API и не обязательно по HTTP протоколу. Протоколов масса и способов общения соответственно. Front-end это клиентское приложение написанное также на чём угодно и общяющаяся с backend API посредством протоколов.

→ Ссылка
Автор решения: Sergey Gornostaev

Фронтенд и бэкенд - это две разных программы, написанные на разных языках, работающие на разных компьютерах в разное время. Единственный способ их взаимодействия - это передача данных через сеть по протоколу HTTP.

→ Ссылка
Автор решения: prospero78su
  1. Надо понимать, что разделение на бек и фронт вызвано фактом существования сетей.
  2. Надо понимать, что ВСЕ ресурсы относительно клиентской машины -- хранятся В СЕТИ. Вам выше неправильно ответили, что эти части могут взаимодействовать ТОЛЬКО по HTTP (подсказка: JavaScript в последних версиях и WebAssembly могут преобразовать HTTP-соединение фактически в TCP-сокет)
  3. Надо понимать, что при взаимодействия фронта и бека -- важны только ИНТЕРФЕЙСЫ. Какой будет использован язык -- не важно.
  4. Надо понимать, что как для фронта, так и для бека можно (но не обязательно и не рекомендуется) использовать разные языки. Если вы используете разные языки -- соответственно вы должны их знать. Но не только их, но и всю ИНФРАСТРУКТУРУ вокруг них. Это ОЧЕНЬ ДОРОГО.
  5. Вы можете использовать на фронте python (через транслятор brython), можете использовать go(через WebAssembly) и даже Rust (тоже через WebAssembly). На беке уже проще -- вам не требуются специальные инструменты. И тут надо уточнять -- какая именно будет нагрузка на сервер и скорость его реакции. Если это реал-тайм игра -- делать сервер на чистом python -- сразу нет (есть способы оптимизации чистого python, но это может повлечь сложности в переносе кода на другую платформу). Лучше смотреть в сторону Go и равноценных по производительности/сложности языков.
  6. Что значит НОРМАЛЬНЫЙ сайт?)) Вы можете привести пример НЕНОРМАЛЬНОГО сайта?))
→ Ссылка