Alura > Cursos de DevOps > Cursos de Começando em DevOps > Conteúdos de Começando em DevOps > Primeiras aulas do curso DevOps: trabalhando com tráfego seguro em comunicações web

DevOps: trabalhando com tráfego seguro em comunicações web

Comunicação web - Apresentação

Olá! Meu nome é Lucas Mata e sou instrutor aqui na Alura. Te damos as boas-vindas a este curso onde vamos dar mais um passo na jornada DevOps!

Audiodescrição: Lucas se descreve como uma pessoa branca, que usa óculos, tem barba preta e cabelo preto liso e curto. Ele está no estúdio da Alura, que possui decoração e iluminação rosa e roxa ao fundo.

Pré-requisitos

Não se preocupe caso ainda não tenha experiência ou conhecimento em DevOps. Recomendamos apenas que tenha feito o curso anterior desta formação, para melhor aproveitar o conteúdo que preparamos.

O que vamos aprender?

Como vamos aprender tudo isso?

Vamos explorar um projeto de aplicação web chamado AllBooks. Assim, entenderemos de forma contextualizada.

Aproveite os recursos da plataforma. Além dos vídeos, temos atividades, o fórum, e a comunidade no Discord.

Vamos dar sequência na nossa caminhada em DevOps?

Comunicação web - Modelo cliente-servidor

Em DevOps, nós sempre buscamos conectar desenvolvimento e operações. Afinal, não basta que uma solução funcione bem no computador do time de desenvolvimento. Ela precisa funcionar bem no computador das pessoas usuárias, que vão acessar recursos e funcionalidades que essa solução possui.

Em geral, nós disponibilizamos essa solução para as pessoas usuárias em um servidor. Para isso, é muito comum usar um servidor web como o Nginx ou o Apache, que são bastante adotados.

Como ocorre a interação entre o servidor e o computador de uma pessoa usuária? Como esses dois conversam para que a pessoa usuária acesse uma página, consuma serviços, funcionalidades e recursos, e que o servidor atenda às solicitações que a pessoa usuária encaminha para ele?

É preciso ter uma conversa, uma transferência de dados, uma troca de mensagens. Nós podemos começar a pensar dessa forma. Temos um protocolo que atua para fazer essa conexão. Talvez você tenha ouvido falar nele. É o HTTP, acrônimo para Hypertext Transfer Protocol (Protocolo de Transferência de Hipertexto), o protocolo de comunicação usado no contexto da web.

Vamos explorá-lo de forma prática usando o projeto da AllBooks.

Modelo cliente-servidor

Começaremos abrindo o prompt de comando. Por que abrir o prompt? Você precisou instalar o Node.js, porque o que vamos fazer é, na prática, visualizar essa interação, tanto do lado do PC de uma pessoa usuária, como também do lado do servidor que atende as mensagens encaminhadas por essa pessoa usuária. Por isso, vamos usar o Node.js.

Primeiro, executaremos o comando cd para entrar no projeto do back-end.

cd api-alurabooks

Depois usaremos o comando npm run start-auth.

npm run start-auth

Agora vamos abrir outra aba do prompt, porque também teremos nesse projeto um front-end, onde podemos interagir com alguns recursos. Para isso, vamos entrar na pasta com o comando abaixo:

cd curso-react-alurabooks

Feito isso, rodaremos o comando npm start.

npm start

Se tudo der certo, vai abrir no browser de navegação. Se não abrir, não se preocupe. Basta digitar na barra de navegação do navegador o endereço "localhost:3000".

Agora vamos interagir mais com o nosso projeto. Podemos clicar com o botão direito do mouse no front-end e ir até a opção "Inspecionar". Será aberta uma nova aba com algumas informações, que são basicamente tudo o que acontece de maneira oculta na página web que acessamos.

Vamos clicar no menu superior na opção "Network" ou "Rede". Ao clicar, temos uma tela em branco. O que vai aparecer nessa tela em branco será toda a interação que tivermos com a página. Ou seja, todos os logs das pessoas usuárias serão registrados nessa tela.

Vamos interagir com a página para verificar se aparece um log de usuário. Clicaremos, por exemplo, na opção "Cadastrar-se". Iremos cadastrar o nome "Lucas", o e-mail "lcs@alura.com", e a senha "123". Ao clicar no botão de cadastrar, surge um prompt com a mensagem "Usuário foi cadastrado com sucesso!".

Agora, na aba "Inspecionar", se clicarmos no log registrar, teremos alguns dados. Primeiro, temos o "Status Code" 200 OK, que indica algo bom.

Também podemos analisar a aba "Payload". Observe que temos algumas informações enviadas para o servidor para nos registrar. Podemos ir também na aba "Headers", que significa cabeçalhos. Encontramos algumas informações da mensagem. Observe que há um "Request Method".

Agora vamos analisar do lado do servidor. Do lado do servidor, temos uma linha com POST /public/registrar 200, seguido de uma informação do tempo levado para responder essa requisição.

Para nós, o importante a se destacar é o POST. Observe que isso veio do front-end. Nesse caso, estamos na aba do back-end do servidor. Observe que o 200 que temos no front-end de status code, que apareceu para nós no log, veio do servidor do back-end.

Conclusão

Nessa interação, vemos que o HTTP se baseia na interação entre um cliente e um servidor. Esse é um modelo básico de funcionamento do HTTP.

Aliás, é um modelo básico de funcionamento de uma aplicação web, de um website. Porém, vamos entender melhor como ocorre essa interação na prática explorando o nosso projeto!

Comunicação web - Redes de computadores

Estamos com a página do projeto AllBooks aberta. Discutimos anteriormente como enviar uma requisição para nosso servidor back-end, mas como ocorre essa interação entre o servidor e o dispositivo do cliente? Será que somente o HTTP está envolvido nesse processo? Ele se encarrega de levar uma mensagem de ponta a ponta? Vamos descobrir que a realidade é um pouco mais complexa.

Redes de computadores

Se analisarmos nosso cotidiano, quando nos conectamos a uma rede, seja em casa, no escritório ou na escola, temos uma série de dispositivos que atuam no meio de campo.

Esses dispositivos recebem as mensagens e os dados que desejamos enviar para outro dispositivo, neste caso, um servidor, e também recebem as informações de volta desse servidor. Mas como funciona essa complexa rede de dispositivos todos conectados?

Inicialmente, esses dispositivos devem permitir que computadores, servidores e celulares se conectem, usando a mesma tecnologia de comunicação.

Isso significa que todos devem poder se comunicar nesse processo. Para isso, precisamos de algum tipo de tecnologia padrão que todos os dispositivos observem, tanto os dispositivos de rede que atuam no meio de campo (como o roteador, o modem, o switch), quanto nossos próprios dispositivos (como celular e notebook), independentemente de marca ou modelo.

Modelo TCP/IP

É por isso que, ao trabalharmos com rede, seguimos um modelo conhecido como TCP/IP. Para facilitar tanto a construção quanto a operação e manutenção dessa rede de comunicação, dividimos esse processo em cinco camadas. Cada camada tem uma função bem definida nessa comunicação.

A primeira delas é onde o protocolo HTTP opera, sendo o protagonista: a camada de aplicação. É nela que ocorre a interação entre as aplicações que temos em nosso notebook, por exemplo, com a rede.

Na sequência, o HTTP entrega essa mensagem que enviamos, essa requisição para o servidor, para a camada de transporte. Nessa camada, temos um protocolo também bastante conhecido, o TCP, que garante uma entrega confiável dessa mensagem no dispositivo de destino.

O TCP recebe essa mensagem, prepara e encaminha para a camada de rede. Na camada de rede, temos outro protocolo muito importante, o IP, que é o protocolo de endereçamento.

Nesse protocolo, a mensagem vai receber tanto o endereço de destino como o endereço de origem, para facilitar o rastreamento desse pacote e garantir que ele chegue ao dispositivo de destino.

Assim, o pacote pode ser encaminhado através da rede, passando por diversos cabos e roteadores, e chegar ao servidor que pode estar em outro país, por exemplo. Essa é a camada de enlace.

Quando o pacote chega na rede do servidor, ele percorre a pilha de camadas no sentido oposto, da camada física até a camada de aplicação, até o servidor web que roda no servidor e disponibiliza nossa aplicação para o público.

Da mesma forma, quando o servidor responde à requisição, essa mensagem percorre esse caminho de rede em rede, roteador em roteador, até chegar ao nosso notebook ou smartphone. Cada dispositivo nessa rede tem um endereço de identificação único, o endereço IP.

Uma coisa interessante a se notar é que a internet, na realidade, é uma rede mundial de computadores, ou seja, uma rede das redes, que integra várias redes diferentes.

Assim, conseguimos nos conectar com diferentes dispositivos localizados em diferentes redes. Também podemos criar redes isoladas, mas se quisermos trocar arquivos, transferir dados para dispositivos em outras redes, precisamos estar conectados nessa rede global que é a internet.

Conclusão

Agora que entendemos mais sobre como ocorre esse envio de uma mensagem entre o servidor e o cliente, vamos explorar mais como funciona o HTTP e como são essas mensagens!

Sobre o curso DevOps: trabalhando com tráfego seguro em comunicações web

O curso DevOps: trabalhando com tráfego seguro em comunicações web possui 89 minutos de vídeos, em um total de 56 atividades. Gostou? Conheça nossos outros cursos de Começando em DevOps em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Começando em DevOps acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas