HTTP é um protocolo muito importante, que na minha opinião, todos os desenvolvedores da web deveriam conhecer, pois esse protocolo alimenta toda a web e ajuda no desenvolvimento de aplicativos melhores.
Portanto, sem mais delongas, vamos ao assunto. Tenha uma ótima leitura e bons estudos.
O que é HTTP?
O Hypertext Transfer Protocol (HTTP) é a base da World Wide Web e carrega páginas da Web usando links de hipertexto.
HTTP é um protocolo de camada de aplicativo projetado para transferir informações entre dispositivos em rede e executa a transferência em cima de outras camadas da pilha de protocolos de rede. Dessa forma se baseia em TCP/IP que padroniza como o cliente e o servidor se comunicam entre si.
Um fluxo típico sobre o protocolo envolve uma máquina cliente fazendo uma solicitação a um servidor, que então envia uma mensagem de resposta.
Veja também:
Estrutura Básica Do HTML
Introdução rápida sobre CSS
Introdução rápida sobre Python
Introdução rápida sobre JavaScript
O que há em uma solicitação HTTP?
Uma solicitação do protocolo é a maneira como as plataformas de comunicação da Internet, como navegadores da Web, solicitam as informações necessárias para carregar um site.
Cada solicitação do protocolo é feita pela Internet carrega consigo uma série de dados codificados que carregam diferentes tipos de informações. Uma solicitação HTTP típica contém:
- Tipo de versão
- Uma URL
- Um método
- Cabeçalhos de solicitação
- Corpo HTTP opcional.
Vamos explorar mais detalhadamente como essas solicitações funcionam e como o conteúdo de uma solicitação compartilha as informações.
O que é um método HTTP?
Um método HTTP, às vezes chamado de verbo HTTP, indica a ação que a solicitação do protocolo espera do servidor consultado. Por exemplo, dois dos métodos HTTP mais comuns são ‘GET’ e ‘POST’; uma solicitação ‘GET’ espera informações de volta em troca (geralmente na forma de um site), enquanto uma solicitação ‘POST’ normalmente indica que o cliente está enviando informações para o servidor web (como informações de formulário, por exemplo, um nome de usuário e senha enviados).
O que são cabeçalhos de solicitação HTTP?
Os cabeçalhos HTTP contêm informações de texto armazenadas em pares de valores-chave, sendo incluídos em cada solicitação HTTP (e resposta, mais sobre isso posteriormente). Esses cabeçalhos comunicam informações essenciais, como qual navegador o cliente está usando e quais dados estão sendo solicitados.
O que há em um corpo de solicitação do protocolo?
Inegavelmente, o corpo de uma solicitação é a parte que contém as informações que a solicitação está transferindo. Desse modo, o corpo de uma solicitação HTTP contém qualquer informação enviada ao servidor web, como nome de usuário e senha, ou quaisquer outros dados inseridos em um formulário.
O que há em uma resposta HTTP?
Uma resposta HTTP é o que os clientes da Web (geralmente navegadores) recebem de um servidor da Internet em resposta a uma solicitação do protocolo. Dessa forma, essas respostas comunicam informações valiosas com base na solicitação HTTP.
Uma resposta HTTP típica contém:
- Um código de status
- Cabeçalhos de resposta
- Corpo HTTP opcional
Vamos decompô-los:
O que é um código de status?
Os códigos de status do protocolo são códigos de 3 dígitos. Por isso, aumenta a frequência para indicar se uma solicitação do protocolo foi concluída com êxito. Os códigos de status dividem-se em 5 blocos a seguir:
- 1xx informativo
- 2xx Sucesso
- Redirecionamento 3xx
- 4xx Erro do cliente
- Erro de servidor 5xx
O “xx” refere-se a diferentes números entre 00 e 99.
Os códigos de status que começam com o número ‘2’ indicam um sucesso. Por exemplo, depois que um cliente solicita uma página da Web, as respostas mais comuns têm um código de status de ‘200 OK’, indicando que a solicitação foi concluída corretamente.
Se a resposta começar com ‘4’ ou ‘5’, significa que houve um erro e a página da web não será exibida.
Um código de status que começa com ‘4’ indica um erro do lado do cliente (é muito comum encontrar um código de status ‘404 NOT FOUND’ ao cometer um erro de digitação em um URL).
Assim, um código de status começando em ‘5’ significa que algo deu errado no lado do servidor. Os códigos de status também podem começar com ‘1’ ou ‘3’, que indicam uma resposta informativa e um redirecionamento, respectivamente.
O que são cabeçalhos de resposta?
Assim como uma solicitação do protocolo, uma resposta dessa solicitação vem com cabeçalhos que transmitem informações importantes, como o idioma e o formato dos dados enviados no corpo da resposta.
O que há em um corpo de resposta HTTP?
Respostas do protocolo bem-sucedidas a solicitações ‘GET’ geralmente têm um corpo que contém as informações solicitadas. Na maioria das solicitações da Web, trata-se de dados HTML que um navegador da Web traduzirá em uma página da Web.
Veja o primeiro artigo do Roadmap: Passo a passo de como funciona a internet
Os ataques DDoS podem ser lançados por HTTP?
Lembre-se de que o HTTP é um protocolo “sem estado”, o que significa que cada comando é executado independentemente de qualquer outro comando. Na especificação original, cada solicitação do protocolo criava e fechava uma conexão TCP.
Além disso, nas versões mais recentes do protocolo HTTP (1.1 e superior), a conexão persistente permite que várias solicitações HTTP passem por uma conexão TCP persistente, melhorando o consumo de recursos.
No contexto de ataques DoS ou DDoS, solicitações do protocolo em excesso podem ser usadas para montar um ataque em um dispositivo de destino, sendo consideradas parte de ataques de camada de aplicativo ou ataques de camada 7.
Perguntas frequentes
O Hypertext Transfer Protocol (HTTP) é a base da World Wide Web e carrega páginas da Web usando links de hipertexto.
Uma solicitação do protocolo é a maneira como as plataformas de comunicação da Internet, como navegadores da Web, solicitam as informações necessárias para carregar um site.
Uma resposta HTTP é o que os clientes da Web (geralmente navegadores) recebem de um servidor da Internet em resposta a uma solicitação do protocolo.