# O que é back-end

[Back-end e front-end](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/criar-sites/front-end-e-back-end/) são termos que se referem a lados independentes e opostos, apesar de complementares, de qualquer software. Se compararmos um software com um carro, podemos afirmar que o back-end seria o motor, o chassi, a parte elétrica e os demais elementos estruturais. O front-end, por sua vez, abarcaria o volante, o painel, os botões de abrir e fechar janelas e as demais estruturas feitas para o motorista usar ativamente.

Definição Back-end é o bastidor, ou seja, **a parte “de trás” dos sites e aplicações**, inacessível a usuários finais. É no back-end que se dá tanto o armazenamento quanto o processamento de dados.

## O que compõe o back-end?

O back-end é composto de dois elementos:

1. Da parte de um software que **processa os dados**.
2. Da **área administrativa** de um software, inacessível a usuários finais.

**Um software pode ser compreendido como uma máquina de processamento de dados**, que executa cálculos e faz uso dos resultados obtidos para decidir como agir. Ainda, softwares criam e armazenam dados em bancos de dados, como no [MongoDB](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/o-que-e-mongodb/) e no MySQL. Ele faz tudo isso nos bastidores, ou seja, no *background*, longe dos olhos e do alcance dos usuários.

Ao contrário do front-end, orientado aos usuários finais, **o back-end é orientado às necessidades técnicas de um software**. Eficiência, desempenho, escalabilidade e segurança estão entre as suas responsabilidades.

Para respeitar o princípio da separação de interesses da programação, **back-end e front-end são implementados como camadas independentes**. No entanto, ambas as camadas são igualmente necessárias para que um software funcione plena e corretamente. Assim, um back-end sem um front-end nada mais é que uma máquina sem botões que possibilitem a operação dela.

Nota Se você quer se aprofundar nas [diferenças entre o back-end e o front-end](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/criar-sites/front-end-e-back-end/), acesse esse artigo especializado do nosso Digital Guide.

## Quem pode acessar o back-end?

**Dois grupos** de profissionais podem acessar e trabalhar no back-end de um site ou aplicação:

1. **Administradores de sistemas** (admins), que precisam acessar o back-end para gerenciar o respectivo sistema.
2. **Desenvolvedores back-end**, para criar, manter e continuar a desenvolver o código do respectivo software.

A seguir explicaremos, em mais detalhes, o papel de cada um desses grupos de profissionais que atuam no back-end:

### Quais são os papéis de administradores de sistemas no back-end?

Para respondermos a essa pergunta, tomaremos o popular sistema de gerenciamento de conteúdo (CMS) [WordPress](https://www.ionos.com/pt-br/digitalguide/hospedagem/blogs/o-que-e-wordpress/) como exemplo. Se você realizar [login no WordPress](https://www.ionos.com/pt-br/digitalguide/hospedagem/blogs/wordpress-admin-login/) como administrador, será redirecionado ao back-end do seu site, também chamado de **Painel**. É por essa interface que você poderá criar, editar e excluir conteúdo.

Dica Com o [Managed Hospedagem para WordPress](https://www.ionos.com/hosting/wordpress-hosting "Managed Hospedagem para WordPress — IONOS") da IONOS, o seu site WordPress ficará bem mais rápido e seguro.

Além de operações CRUD básicas, pelo back-end do WordPress, **administradores gerenciam elementos** como funções de usuários WordPress e [plugins de backup do WordPress](https://www.ionos.com/pt-br/digitalguide/hospedagem/blogs/plugins-de-backup-wordpress/).

Nota Embora tecnicamente o Painel do WordPress seja considerado um back-end, ele é disponibilizado por uma interface gráfica de usuário (considerada um front-end), o que prova que back-end e front-end podem, em determinadas situações, se misturar.

### Quais são os papéis de desenvolvedores no back-end?

Ao contrário de administradores, **desenvolvedores não precisam fazer login para acessar o back-end** de um site ou aplicação. Na verdade, eles utilizam um ambiente de desenvolvimento para desenvolver o código-fonte do back-end, que será executado em um servidor ou contêiner.

Depois da realização de testes majoritariamente autônomos, os **códigos desenvolvidos são carregado em servidores** por meio de ferramentas de integração contínua ou por plugins — alguns plugins de desenvolvimento do WordPress executados no back-end podem ser gerenciados por admins.

Ao contrário do front-end, que é executado no cliente, o back-end é executado no servidor. Via de regra, **pilhas de tecnologia** (web stacks) são usadas para o desenvolvimento e para a execução de códigos. Entre as diversas pilhas de tecnologia populares estão LAMP e MEAN.

Uma pilha de tecnologia possui um sistema operacional ou contêiner como ambiente de execução. Dentro desse ambiente, um **servidor web recebe e responde às solicitações** . Os scripts são executados em uma linguagem de programação web e servem de conexão entre o servidor e o banco de dados:

<table>
  <thead>
    <tr>
      <th>Pilha de tecnologia</th>
      <th>Ambiente de execução</th>
      <th>Servidor</th>
      <th>Banco de dados</th>
      <th>Linguagem de programação</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>LAMP</strong></td>
      <td><strong>L</strong>inux</td>
      <td><strong>A</strong>pache</td>
      <td><strong>M</strong>ySQL</td>
      <td><strong>P</strong>HP</td>
    </tr>
    <tr>
      <td><strong>MEAN</strong></td>
      <td><strong>N</strong>ode.js</td>
      <td><strong>E</strong>xpress.js</td>
      <td><strong>M</strong>ongoDB</td>
      <td><strong>A</strong>ngular (JavaScript)</td>
    </tr>
  </tbody>
</table>

Desenvolvedores back-end costumam usar frameworks web para **simplificar a consulta, o processamento e o armazenamento dos dados**. Por esse motivo, apresentaremos, a seguir, alguns dos frameworks mais importantes para desenvolvedores back-end.

Nota Programadores que desenvolvem tanto o back-end quanto o front-end de sites e aplicações são chamados de desenvolvedores *full stack*.

## Quais são os frameworks mais importantes para o back-end?

Frameworks ajudam a simplificar o trabalho de desenvolvimento do back-end de um site ou aplicação. Por exemplo, é graças a um framework para back-end que você não precisa criar códigos do zero e repetidas vezes, como ao desenvolver processos de **autenticação de usuários e de conexão com o banco de dados**. Frameworks costumam integrar linguagens e templates diferentes para gerar o código HTML que será utilizado pelo front-end.

O melhor framework para back-end a ser usado **dependerá do seu ambiente de desenvolvimento e da linguagem de programação** utilizada. As linguagens de programação mais comuns são PHP, Python, Ruby, JavaScript e Java. Para essas linguagens, apresentaremos os frameworks para back-end mais populares e interessantes.

### Symfony e Laravel: Frameworks para back-end em PHP

Symfony e Laravel são dois dos **mais populares frameworks para back-end** que existem. Ambos podem ser usados na programação de aplicações web sofisticadas, sem que você precise começar o trabalho do zero. Enquanto o Laravel é mais simples e, portanto, mais fácil de aprender a usar, o Symfony é uma opção mais robusta e flexível.

Os dois frameworks são igualmente populares pelo **design modular**. Muitas das tecnologias web mais úteis foram escritas a partir do Symfony. O Laravel, por sua vez, também contribui bastante com os seus templates Blade.

### Ruby on Rails: O clássico framework para back-end em Ruby

O framework para back-end Ruby on Rails (RoR) foi considerado revolucionário ao ser lançado e ajudou a linguagem de script Ruby a alcançar seu grande sucesso. Ousamos dizer que não existe nenhum outro framework tão focado em **produtividade e satisfação dos desenvolvedores** quanto esse. Ainda, o RoR popularizou a abordagem *model-view-controller* (MVC), abrindo portas para diversos frameworks para back-end que o sucederam.

Dica Este tutorial do nosso Digital Guide ensina você como criar uma aplicação com Ruby on Rails.

### Django: Framework para back-end para programar em Python

Python é uma linguagem de script web clássica. Já o Django é o poderoso framework para back-end que **permite que aplicações web em Python sejam desenvolvidas muito mais rapidamente**. Ele também adota o padrão *model-view-controller*, além de possuir um mecanismo próprio de templates.

Dica Quer começar a programar em Python? Comece pelo nosso [tutorial introdutório de Python](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/aprender-python/).

### Express e Node.js: Escrever aplicações web em JavaScript

Antigamente, **uma linha invisível separava as linguagens de programação destinadas ao back-end e ao front-end**. HTML, JavaScript e CSS eram exemplos de linguagens utilizadas somente pelo front-end, enquanto linguagens como PHP, Python, Perl e Ruby eram exclusivas para o back-end. Contudo, assim que o ambiente de execução Node.js para JavaScript foi lançado, essa linha invisível se rompeu. Ele fez com que fosse possível usar JavaScript tanto no front-end quanto no back-end.

O Node.js oferece toda a base para a criação de aplicações web em JavaScript, além de possibilitar que frameworks web como o Express sejam usados sobre ele. **A combinação Express e Node.js se popularizou** como parte da pilha de tecnologia MEAN, com o MongoDB e o framework para front-end Angular.

### Spring: Framework para back-end para aplicações web em Java

Sozinha, a linguagem de programação Java não é considerada suficiente para o desenvolvimento de aplicações web modernas. No entanto, graças ao framework Spring, já é possível **desenvolver aplicações complexas em Java, em uma base estável**. Desenvolvimentos mais novos, como o Quarkus, possibilitam execuções de alto desempenho em contêineres.

Dica O tutorial de Spring do nosso Digital Guide ensina você como criar aplicações em Java com o framework Spring.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/sites-de-internet/criar-sites/o-que-e-back-end/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/criar-sites/o-que-e-back-end/) for AI/LLM consumption.