- O desenvolvimento web é composto por duas partes principais: o frontend e o backend.
- O frontend se preocupa com a apresentação visual da aplicação e costuma ser fácil de entender, pois é com ele que interagimos diariamente na web.
- O backend, por outro lado, são todas as partes da web com as quais os usuários não interagem diretamente.
- Nesta aula, vamos discutir o básico de como funciona o backend de um site, rastreando todas as etapas pelas quais o backend deve passar desde o momento em que recebe uma requisição até o ponto em que envia uma resposta de volta ao cliente.
-
A princípio, o servidor recebe uma requisição de um cliente na forma de uma URL.
-
A partir dessa URL, o servidor pode obter quase todas as informações necessárias para processar a solicitação.
-
Vamos separar uma URL típica:
http://example.com/path?query=value
- No início, temos o protocolo para a solicitação
http://
. - A única coisa que o protocolo faz é informar ao servidor se a requisição está criptografada.
- HTTP é para solicitações não criptografadas padrão e HTTPS é para solicitações criptografadas.
- Além de informar ao servidor se a resposta é criptografada ou não, o protocolo não afeta a maneira como o servidor trata as solicitações e pode ser ignorado.
- Em seguida, temos o host
example.com
, conhecido como nome de domínio. Novamente, não é importante se preocupar com os detalhes disso, pois tudo o que ele faz é informar à Internet para qual servidor enviar a resposta. - Cada servidor tem seu próprio host específico, portanto, uma vez que a requisição realmente chega ao servidor, o host não importa, pois todas as requisições para o servidor terão o mesmo host.
- Por exemplo,
youtube.com
é o host do servidor do YouTube, portanto, o servidor do YouTube já sabe que todas as requisições que receber terão o hostyoutube.com
. - Isso significa que podemos ignorar com segurança a primeira metade da URL, o que nos deixa com as duas últimas seções da URL: o path (caminho) e query string (string de consulta).
- O caminho
/path
(ou rota) informa ao servidor o que o cliente deseja e define qual seção de código no servidor deve ser executada para obter a resposta correta. Essencialmente, o servidor é dividido em várias seções diferentes que correspondem a um caminho específico. - Por último, a query string
?query=value
é usada pela seção específica do servidor para alterar a resposta.
- O caminho
-
A string de consulta é dividida em parâmetros de consulta específicos que podem aumentar a maneira como o servidor responde a uma solicitação de um caminho específico.
https://www.youtube.com/results?search_query=cats
-
Por exemplo, o YouTube usa o mesmo caminho
/results
quando você pesquisa um vídeo, mas a string de consulta contém um parâmetro search_query?search_query=cats
que informa ao servidor o que você pesquisou para que ele possa responder com o que você deseja.
- A URL por si só não é suficiente para dizer ao servidor exatamente o que ele precisa fazer.
- Ela pode dizer ao servidor qual seção procurar e como alterar essa seção com base nos parâmetros de consulta, mas essa seção do servidor é dividida ainda mais em várias partes diferentes.
- Para determinar qual parte dessa seção o servidor deve executar, ele precisa usar uma ação (ou método) que é passada junto com a URL.
- Essa ação pode ser GET, POST, PUT ou DELETE.
- Ao combinar o método HTTP e o caminho, o servidor pode encontrar a parte correta da seção correta que precisa ser executada. Ele pode então usar os parâmetros de consulta para alterar a resposta dessa parte e seção específica.
- A resposta do servidor poderá ser uma página HTML que é gerada dinamicamente com base na solicitação do cliente. Outros arquivos podem ser retornados, como JSON e XML, por exemplo.
- É por isso que quando você acessa a página de pesquisa do YouTube, ela sempre mostra a mesma página, pois possui o mesmo caminho e ação, mas os vídeos retornados da sua pesquisa são diferentes com base no parâmetro de consulta da sua pesquisa.
- Outra coisa importante a ser observada sobre um servidor é que ele só é acessível ao mundo exterior através das seções que ele define.
- Isso significa que você pode armazenar qualquer informação segura no servidor e ela estará segura desde que não seja exposta por meio de um caminho específico.
- É por isso que é seguro ter um banco de dados e um site rodando no mesmo servidor, já que o servidor escolhe apenas expor o site e não o banco de dados.
- Essencialmente, o servidor atua como uma barreira entre o mundo exterior e todas as partes de um site.