Бэкенд

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Бэкенд (Backend, Бекенд) — типичная часть современного мощного сайта, которая отвечает за внутреннюю логику работу системы. Эта часть не видна для обычных пользователей и часто является чёрным ящиком, что важно и с точки зрения безопасности. Доступ к бэкенду производится только потужным фронтендом.

Описание[править]

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

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

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

Так, на сравнительно простом сайте в роли фронтенда может быть какой-нибудь nginx, который занят кешированием и внешней защитой. Запросы же идут на внутренний apache2, который их обрабатывает уже и выдаёт информацию. Всё работает в строго установленном порядке, оттого и работает собственно.

Часто пишут такие программы на Python или Java.

Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++ScalaH и Ё+
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)Тернарный операторUnreal MCPИсходный кодSingle-Page ApplicationGiteaForgejoCephIDEДжуниор
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автоматПроцедурное программированиеПоиск файлов в Unix по содержимомуPetoohФункция активации нейронаПерегрузка операторов в PythonЗерокодинг
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный PythonMallocСвязный списокSOLIDООПУказательNULLWeLang++XenonRecompFuse.jsОптимизацияТестированиеAmbreon866Реверс-инжинирингКроссплатформенностьJSON
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур Пейперт
Прочее++i + ++iДедлайн%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодачХукCurl cffiВибе-кодингFlutterАппликативный оператор