Аналитика
Как работает Web (этот ваш интернет)

Как работает Web (этот ваш интернет)

Пришло время феерически расставить точки над i в вопросе "а вот есть бекенд и фронтенд, а зачем?"

Начнём с того, что компьютеры по средствам различных физических сред (а ля радио - WiFi, а ля старые телефоны - провод) могут друг с другом обмениваться сигналами. Сигналы простые, но их комбинация имеет более сложный смысл - равно как индейцы умели дымом от костра сигнализировать о разных вещах. Один дым - ничего не понятно, а вот с определёнными интервалами - тут и сообщение можно зашифровать. А представьте, что этих сообщений можно делать по миллиону в секунду! Тут и фильм можно рассказать в деталях до точек - так, к примеру, работает Youtube.

Далее стоит сказать, что Web или "интернет" это немного не то, что часто имеют в виду люди. Часто они говорят о его самой известной части - HTTP. О ней мы и продолжим речь, ведь это фееричное расставление точек над i.

HTTP(S) - это самый известный способ взаимодействия одного компьютера с другим. Компьютер-сервер - как магазин - есть куча информации (текст, картинки, видео, музыка), которой он готов поделиться (о вопросах монетизации я умолчу). Компьютер-клиент - это ваш ноутбук, телефон, кассовый аппарат - им нужна различная информация от сервера. И по одной из физических сред они её запрашивают. А вот язык, на котором они с сервером общаются - HTTP - выдуманный для программистов, вы его не увидите, если серьёзно не займётесь IT, но почти каждый ваш клик на каком-нибудь сайте превращается в HTTP запрос!

По сути там всё просто: дай, удали, обнови, создай. Но вот как это внутри работает...

Зачем нужны фронтендеры

Заходя на сайт, что вы видите? Скорее всего это какая-то красивая картинка: карточки товаров, кнопочки заказа; либо же карточки фильмов, кнопочки запуска проигрывания; или же... В общем карточки (ссылки/переходы) и кнопочки (какие-то действия). Ну или рабочее: фоомы, кнопки, формы, кнопки, уведомления. И всё это придумал дизайнер... Он нарисовал, как это должно выглядеть. Но рисунок не заказывает бургер. Здесь нужно внести динамику, чтобы странички переходили одна на другую, чтобы шли запросы в ресторан на доставку...

И тут на сцену выходит фронтендер. Или "лицевик". Это программист, который из рисунка дизайнера сделает элементы взаимодействия. Кликнув на картину Айвозовского вы получите подзатыльник, а на результат работы фронтендера - переход на другую страницу или отправку формы. Ну или выскочет предупреждение. И т.д. В общем, этот человек превращает мёртвую картинку, в живое - можно гулять по сайтам, отправлять злобные комментарии, заказать тот самый бургер.

Но! Это всё ещё происходит лишь у вас в голове... точнее - в вашем компьютере. Помните, мы говорили о том, что компьютеры могут общаться с друг другом по WiFi (а ля радио) или по проводам... Так вот, пока что мы говорили лишь о том, что происходит на вашем компьютере.

Зачем нужны бекендеры

Все переходы, что делают фронтендеры, либо отправки форм, заказов и т.д. На самом деле они посылают по сети к серверу... Где уже и сидят наши ребята - бекендеры. Сам фронтенд ("морда") ничего не знает. Точнее знает о том, как это правильно и красиво отобразить. Но вот цены в соседнем супермаркете - нет. Для этого она может сделать запрос на бекенд этого супермаркета, который и расскажет "морде", какие есть нынче скидки.

Бекенд - это набор программ, которые в отличие от фронтенда, находятся не у пользователя, а у поставщика услуг. И фронтенд спрашивает у них информацию (в очень неприглядном формате), для того чтобы красиво и удобно предоставить пользователю.

Сам же бекенд занимается расчётами, запоминанием кто-что покупал, чтобы предложить подобное позже и т.д. В общем, "мозг".

И тут появляются администраторы баз данных

С хитрым прищуром в данной ситуации на бекендеров могут посмотреть администраторы баз данных (DBA от "DataBase Administrator"). Ведь именно в базах данных (ещё один сервер) хранятся те данные, которыми оперирует бекенд... Иными словами они сами бекенд для бекенда...

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

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

Но мы любим, чтобы было уютно и удобно - за тем и нужны бекендеры и фронтендеры.

Также может быть вам интересно:

Как удалить локальную или удалённую ветку в Git

Git - распределённая система контроля версий, где ветки(branch) используются крайне активно. На каждую задачу - отдельная ветка - вот хороший тон!

Читать »

Что делать, если не успеваешь сделать в срок

У части программистов есть огромная беда - они впадают в стопор, если не успевают решить задачу в скрок.

Читать »
Фото Как сделать свою middleware в Django (с примерами)

Как сделать свою middleware в Django (с примерами)

Middleware или "промежуточное программное обеспечение" - элегантный способ установить общие правила обработки запросов и ответов приложения. Давайте напишем парочку middleware, чтобы понять, как они работают.

Фото Как настроить отправку почты из Django

Как настроить отправку почты из Django

Письма об ошибках, отчёты на почту, восстановление паролей - всё это полезно при работе с сайтом. Django предоставляет удобный способ это сделать с минимумом настроек!

Фото Добавляем поддержку медиа-файлов в Django проект

Добавляем поддержку медиа-файлов в Django проект

Современные сайты редко ограничиваются только текстом и вёрсткой. Часто в заметках красуются фотографии, а рядом с описанием товаров - их изображения.

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

Во время работы программы часто нужно сохранять некоторые важные записи о процессе выполнения команды. В Python есть довольно мощный модуль для работы с логами - давайте разберёмся с тем, как его использовать.

Фото Нет слов, одни... однострочники

Нет слов, одни... однострочники

На днях вышел пост со списком полезных однострочников для JavaScript программистов. Памятуя Perl-овую молодость, заглянул туда.

Фото Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

В Django вы можете передавать данные в шаблоны посредством контекстов. Контекст передаётся из контроллера (view в терминах Django), однако, если одни и те же данные нужны в разных местах, лучше сделать свой контекст-процессор.

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.

Фото Разграничение прав доступа на Django сайте

Разграничение прав доступа на Django сайте

Почти на любом веб-сайте необходимо разделять пользователей на группы и предоставлять им разные возможности. В Django есть довольно серьёзная система прав доступа для пользователей - давайте её рассмотрим!