Реализация backend + frontend
Интересует вопрос, как на самом деле на нормальных сайтах работает связка frontend + backend.
Как это отделено друг от друга и как взаимодействует?Очевидно это не просто папка где всё вместе лежит(и html и php и js и т.д).
Как можно использовать разные технологии на одном и том же сайте? (на backend'e например: python,go и т.д, на фронтенде другие связки технологий.)
Интересует любая информация об этом всём. ссылки на статьи, книги, блоги ...что угодно
И по возможности (если такое существует) примеры развертывания сайтов, с разными технологиями.
Искал в интернете, но не особо нашел информацию(скорее всего не правильно искал).
Спасибо.
Ответы (3 шт):
Да всё это про100. У вас наверняка есть статичный сайт который обращается к третьему серверу. Так вот этот сервер может быть реализован на чём угодно. Примеров масса. Backend - это программа предоставляющая услуги посредством API и не обязательно по HTTP протоколу. Протоколов масса и способов общения соответственно. Front-end это клиентское приложение написанное также на чём угодно и общяющаяся с backend API посредством протоколов.
Фронтенд и бэкенд - это две разных программы, написанные на разных языках, работающие на разных компьютерах в разное время. Единственный способ их взаимодействия - это передача данных через сеть по протоколу HTTP.
- Надо понимать, что разделение на бек и фронт вызвано фактом существования сетей.
- Надо понимать, что ВСЕ ресурсы относительно клиентской машины -- хранятся В СЕТИ. Вам выше неправильно ответили, что эти части могут взаимодействовать ТОЛЬКО по HTTP (подсказка: JavaScript в последних версиях и WebAssembly могут преобразовать HTTP-соединение фактически в TCP-сокет)
- Надо понимать, что при взаимодействия фронта и бека -- важны только ИНТЕРФЕЙСЫ. Какой будет использован язык -- не важно.
- Надо понимать, что как для фронта, так и для бека можно (но не обязательно и не рекомендуется) использовать разные языки. Если вы используете разные языки -- соответственно вы должны их знать. Но не только их, но и всю ИНФРАСТРУКТУРУ вокруг них. Это ОЧЕНЬ ДОРОГО.
- Вы можете использовать на фронте python (через транслятор brython), можете использовать go(через WebAssembly) и даже Rust (тоже через WebAssembly). На беке уже проще -- вам не требуются специальные инструменты. И тут надо уточнять -- какая именно будет нагрузка на сервер и скорость его реакции. Если это реал-тайм игра -- делать сервер на чистом python -- сразу нет (есть способы оптимизации чистого python, но это может повлечь сложности в переносе кода на другую платформу). Лучше смотреть в сторону Go и равноценных по производительности/сложности языков.
- Что значит НОРМАЛЬНЫЙ сайт?)) Вы можете привести пример НЕНОРМАЛЬНОГО сайта?))