What is HTTP?

The Hypertext Transfer Protocol is used to load pages on the Internet using hyperlinks.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Define HTTP
  • Describe the anatomy of HTTP requests and responses
  • Understand how DDoS attacks can be launched over HTTP

Copiar o link do artigo

O que é HTTP?

O Protocolo de Transferência de Hipertexto (HTTP) é a base da internet e é usado para carregar páginas web usando links de hipertexto. O HTTP é um protocolo da camada de aplicativos desenvolvido para transferir informações entre dispositivos em rede e é executado no topo de outras camadas da pilha de protocolos de rede. Um fluxo típico do HTTP envolve uma máquina cliente que faz uma solicitação a um servidor, o qual por sua vez, envia uma mensagem de resposta.

O que há em uma solicitação HTTP?

Uma solicitação HTTP é a forma como as plataformas de comunicação da internet, como os navegadores web, pedem as informações de que necessitam para carregar um site.

Cada solicitação HTTP feita pela internet traz consigo uma série de dados codificados que trazem diferentes tipos de informações. Uma solicitação HTTP típica contém:

  1. Tipo de versão do HTTP
  2. uma URL
  3. um método HTTP
  4. Cabeçalhos de solicitação HTTP
  5. Corpo opcional do HTTP.

Vamos explorar com mais profundidade de que forma essas solicitações funcionam e como o conteúdo de uma solicitação pode ser usado para compartilhar informações.

O que é um método HTTP?

Um método HTTP, às vezes denominado verbo HTTP, indica a ação que a solicitação HTTP espera do servidor consultado. Por exemplo, dois dos métodos HTTP mais comuns são "GET" e "POST"; uma solicitação "GET espera receber informações de volta (geralmente na forma de um site), enquanto uma solicitação "POST" normalmente indica que o cliente está enviando informações ao 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, e são incluídos em cada solicitação HTTP (e em cada resposta, falaremos mais sobre isso mais adiante). Esses cabeçalhos comunicam informações essenciais, como qual navegador o cliente está usando e quais dados estão sendo solicitados.

Exemplo de cabeçalhos de solicitação HTTP da guia de rede do Google Chrome:

O que há em um corpo de solicitação HTTP?

Corpo de uma solicitação é a parte que contém o "corpo" de informações que a solicitação está transferindo. O corpo de uma solicitação HTTP contém qualquer informação que está sendo enviada ao servidor web, como um 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 web (frequentemente navegadores) recebem de um servidor de internet em resposta a uma solicitação HTTP. Essas respostas comunicam informações valiosas com base no que foi pedido na solicitação HTTP.

Uma resposta HTTP típica contém:

  1. um código de status HTTP
  2. Cabeçalhos de resposta HTTP
  3. corpo de HTTP opcional
  4. Vamos especificar cada um deles:

    O que é um código de status HTTP?

    Os códigos de status HTTP são códigos de três dígitos usados mais frequentemente para indicar se uma solicitação HTTP foi concluída com sucesso. Os códigos de status são divididos nos cinco blocos a seguir:

    1. 1xx Informativo
    2. 2xx Sucesso
    3. 3xx Redirecionamento
    4. 4xx Erro no cliente
    5. 5xx Erro no servidor
    6. O "xx" se refere a números diferentes entre 00 e 99.

      Os códigos de status que começam com o número "2" indicam que a solicitação foi concluída com sucesso. Por exemplo, depois que um cliente solicita uma página web, as respostas mais comumente vistas têm um código de status de "200 OK", indicando que a solicitação foi devidamente concluída.

      Se a resposta começar com um "4" ou um "5", isso significa que houve um erro e a página web não será exibida. Um código de status que começa com um "4" indica um erro do lado do cliente (é muito comum encontrar um código de status "404 NOT FOUND" quando se comete um erro de digitação de uma URL). Um código de status que começa com "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 HTTP?

      Assim como uma solicitação HTTP, uma resposta HTTP vem com cabeçalhos que transmitem informações importantes, como o idioma e o formato dos dados enviados no corpo da resposta.

      Exemplo de cabeçalhos de resposta HTTP da guia de rede do Google Chrome:

      O que há em um corpo de resposta HTTP?

      As respostas HTTP bem sucedidas para as 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á para uma página web.

      Os ataques DDoS podem ser lançados via HTTP?

      Lembre-se que o HTTP é um protocolo "stateless", o que significa que cada comando é executado independentemente de qualquer outro comando. Na especificação original, o HTTP solicita que cada um crie e feche uma conexão TCP . Em versões mais recentes do protocolo HTTP (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 dos ataques DoS ou DDoS, solicitações HTTP em grandes quantidades podem ser usadas para montar um ataque em um dispositivo visado, e são consideradas parte dos ataques da camada de aplicativos ou ataques de camada 7.