DEV Community

Cover image for Parte 1: Protocolo HTTP
William Dantas
William Dantas

Posted on

Parte 1: Protocolo HTTP

Olá! Aqui é meu primeiro post e apenas vou dissecar um pouco sobre o protocolo HTTP.

Requisitos

  • Conhecimento básico em terminal
  • Noções em Node.js

Conhecendo o HTTP

Com uma página aberta em um navegador, ao inspecionar um elemento notamos que caímos no famoso devtools. Na parte superior podemos selecionar a aba Network ou Rede onde encontraremos uma área em branco onde serão exibidos diversos logs com informações e mensagens do HTTP. Ao filtrar somente por requisições FETCH/XHR, teremos então somente os endpoint chamados para a api, sem a presença de arquivos como html, css, js, entre outros.

devtools do navegador indicando a aba de network

Ao realizar o login, notamos que na mesma listagem aparece o endpoint, informando o nome pra onde chamou na API.

No caso aqui é uma API REST.

devtools do navegador indicando a aba de network

Ao clicar notamos diversas informações.

Na aba de HEADERS temos alguns itens que iremos abordar num futuro que são:

  • Request URL
  • Request Method
  • Status Code

devtools indicando os Headers do endpoint selecionado

Existem outras, mas essas são geralmente as mais observadas.

Na aba de PAYLOAD temos um JSON que corresponde exatamente as informações preenchidas no frontend pelo usuário

devtools indicando os Payload do endpoint selecionado

Com isso, observamos o HTTP sendo usado no frontend.

Para identificar o HTTP trabalhando no backend, basta ir ao terminal local que irá aparecer um log como:

POST /public/login 200 1.474ms - 347
Enter fullscreen mode Exit fullscreen mode

Note que o 200 apareceu aqui novamente, além de outras informações como o tempo total da requisição. O importante é o começo POST /public/login.

Esta informação veio do frontend. O numero 200 foi gerado pelo backend. Isso evidencia que o HTTP é sempre uma interação entre duas entidades, o cliente e o servidor.

Então, aqui vimos brevemente como o HTTP que corresponde a sigla Hypertext Transfer Protocol, ou seja, Protocolo de Transferência de Hipertexto, é usado para transferir dados na web.

É obrigatório que para o uso do HTTP, tenha duas entidades: um cliente e um servidor.

Arquitetura do HTTP

Alguns parâmetros do HTTP são perceptíveis no navegador, mas como ocorre essa comunicação? A resposta está na camada de aplicação da arquitetura da internet.

Essa camada é composta pelo browser, então toda vez que estamos utilizando aplicativos ou navegadores, estamos utilizando esta camada.

Existem regras para que aconteça essa comunicação. Se o cliente mandar uma mensagem e o servidor não responder, não funciona.

Regras do protocolo HTTP

  • A comunicação sempre envolve duas entidades: um cliente e um servidor.

  • A conversa é iniciada pelo cliente. O servidor nunca inicia a comunicação enviando informações ao cliente sem ser solicitado.

  • Depois que o cliente envia uma mensagem, o servidor responde com as informações solicitadas.

O HTTP opera sobre o TCP (Transmission Control Protocol), que é um protocolo da camada de transporte essencial para garantir a entrega bem-sucedida das mensagens HTTP ao destinatário.

Basicamente todo dispositivo que se conecta à internet possivelmente utiliza o protocolo HTTP (existem exceções).

Conclusão

Em resumo, o HTTP é um protocolo essencial que opera na camada de aplicação da arquitetura da internet. Ele facilita a comunicação entre o cliente (geralmente um navegador web) e o servidor, permitindo a troca de informações na forma de documentos HTML, imagens, arquivos de vídeo, entre outros. O HTTP é um protocolo sem estado, tratando cada solicitação de forma independente. Este post explorou como o HTTP é usado tanto no frontend quanto no backend, e discutiu algumas das regras fundamentais que governam a comunicação HTTP. Embora este post tenha fornecido uma visão geral do HTTP, há muito mais a aprender sobre este protocolo crucial e como ele suporta a comunicação na web.

--

Para manter este post conciso e útil, vou encerrar aqui nossa exploração do Protocolo HTTP. No entanto, há muito mais a discutir sobre esse tema fascinante. Nos próximos posts, pretendo abordar questões como alternativas quando o HTTP pode não ser a melhor opção, a distinção entre URL, URI e DNS, e técnicas para depurar métodos HTTP de forma eficaz.

Fique ligado para as próximas atualizações, enquanto continuamos a desvendar os mistérios da comunicação na web juntos.

Até breve! Se você gostou deste post, por favor, deixe um like.

Top comments (2)

Collapse
 
gonkristiano profile image
Cristiano Gonçalves ⛩️

Parabéns pelo post!
Seria interessante falar um pouco mais sobre os headers nos próximos posts.

Tem bastante informação naquela aba que gostaria de entender melhor.

Collapse
 
rikokami profile image
William Dantas

Obrigado! Com certeza irei abordar num futuro e eles merecem uma exploração mais detalhada :)