Если очень примитивно, то пользователь работает с frontend, который собирает и отправляет данные backend-у, который, в свою очередь, делает что-то с этими данными. В контексте клиент-серверного ПО, то клиент это frontend, а сервер - backend. Между ними http (обычно restfull или soap интерфейс, которые служат транспортном для данных).
В более общем смысле, front-end является интерфейсом, который подготавливает данные для передачи на нижестоящий уровень (back-end). Причем уровней может быть сколь угодно много, так что на сервере так же может быть свой front-end и back-end к нему.