Что такое front-end и back-end?

Часто мне приходилось слышать оба этих термина, причём люди, которые ими оперировали, порой даже близко не понимали их сути. Front-end (фронтенд) и back-end (бекенд) используются во многих сферах и отраслях, однако мы поговорим именно об IT, или, даже более конкретно, о Web-разработке.

Фронтненд – браузер, бекенд – сервер

Говоря я фронтенде и бекенде, программисты обычно подразумевают разделение интерфейсной части пользователя от программной логики. В этом случае front-end – это интерфейсная часть, которая выполняется, например, в браузере, а back-end – это серверная часть.

В Web-разработке, например, в качестве фронтенда выступают HTML-вёрстка, стили CSS и JavaScript, а в качестве бекенда – серверная часть, которую обычно программируют на PHP или ASP.net. Грубо говоря, всё то, что исполняется на стороне клиента – front-end, а то, что на стороне сервера – back-end. Кстати, поскольку пользователи не видят бекенд, то программисты могут поменять его «втихую». Twitter, например, в качестве бекенда некоторое время использовал Ruby on Rails, но в 2011 году перешел на Java. Готов поспорить, большинство даже и не заметило этого!

Фронтненд – статика, бекенд – программный код

В среде разработчиков высоконагруженных систем (highload-разработчиков) термином front-endназывают ту программную часть, которая непосредственно «отдаёт» контент. Например, на больших проектах часто программную серверную часть представляют 2 веб-сервера – Apache и nginx. Nginx принимает запросы и, в случае статического файла, (изображение, файл css, js или xml) сразу же отдаёт его содержимое, а в случае PHP-скрипта, отправляет его к серверу Apache, который уже умеет обрабатывать PHP. Тут nginx – это фронтенд, а Apache – бекенд. Конечно, высоконагруженные системы имеют сложную инфраструктуру, и порой представляют собой много серверов, разнесённых по разным континентам, но общую суть вы уловили.

Фронтненд – открытые данные, бекенд – админка

Также, когда говорят об CMS, административную часть называют back-end, а «лицевую» часть сайта – front-end. С такой трактовкой термина я сталкивался реже всего, однако многие его применяют повсеместно.

Так что же такое фронтенд и бекенд?

Если вы не лишены логического мышления, то поймёте в чём нюанс: в одной сфере один и тот же термин имеет 3 (!) различных значения:

  • Браузерная / серверная часть (самый популярный вариант);
  • Серверная часть, отдающая статику / серверная часть, выполняющая код (highload);
  • Часть сайта для пользователей / часть сайта для администраторов и модераторов.

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