Front-End: HTTP Part 1
Published: 2022-02-17 14:19:14

**HTTP Parte 1:**

**O que é:** O **<u>HTTP</u>** (Hypertext Transfer Protocol) é a base da **<u>World Wide Web</u>** (WWW). O **<u>HTTP</u>** é um protocolo que foi projetado para transferir informações através dos dispositivos por meio dos protocolos de rede. Tudo é feito através de uma máquina cliente que se conecta a um servidor e envia uma mensgaem de resposta.

**Solicitação HTTP:** Uma solicitação **<u>HTTP</u>** carrega dados codificados com diferentes informações. Algumas delas são:

**Tipos:**

> ⦁	**_URL_**
> ⦁	**_Método_** **<u>_HTTP_</u>**
> ⦁	**_Cabeçalho de solicitação_**
> ⦁	**_Corpo opcional_**

**Método HTTP:** Muitas vezes chamado de verbo **<u>HTTP</u>**, indica a ação de espera do **<u>HTTP</u>** no servidor, como exemplo, temos o **_GET_** e o **_POST_**.

**GET:** Espera a volta das informações em geral na forma de site.

**POST:** Indica o envio de informações para o servidor web pelo cliente, como nomes e senhas por exemplo.

**Cabeçalhos de HTTP:** Contêm as informações dos textos em valores-chaves de cada solicitação **<u>HTTP</u>**. Os cabeçalhos entrega ao cliente o navegador o qual ele está usando e o que ele está pedindo pelos dados solicitados.

**Corpo de solicitção HTTP:** É a parte que contém o "**corpo**" das informações que estão sendo transferidas pela solicitação. O corpo **<u>HTTP</u>** possui informações como nome, senha, email, qualquer informação e dado enviado para o servidor.

**Resposta HTTP:** A resposta **<u>HTTP</u>** é o que clientes recebem dos servidores, são as informações que foram solicitadas.

**Tipos:**
> ⦁	**_Código de status_** **<u>_HTTP_</u>**
> ⦁	**_Cabeçalhos de resposta_** **<u>_HTTP_</u>**
> ⦁	**_Corpo_** **<u>_HTTP_</u>** **_opcional_**

**Códigos de status HTTP:** São códigos que possuem 3 digitos, e ambos servem como indicção de conclusão as solicitações **<u>HTTP</u>**.

**Divisão:**

> ⦁	**_1xx Informativo_**
> ⦁	**_2xx Sucesso_**
> ⦁	**_3xx Redirecionamento_**
> ⦁	**_4xx Erro do cliente_**
> ⦁	**_5xx Erro do Servidor_**

O "**xx**" refere-se a números que estão entre 00 e 99, como um exemplo o famoso 404, que indica erro.

Os códigos que se iniciam com o número 2 possuem o status de sucesso, como exemplo pode-se citar que foi feita uma solicitação em uma pagina web, e para indicar que foi concluido corretamente, o status "**200 OK**" é  mostrado.

As respostas com inicio 4 e 5 indicam erro, como exemplo temos o já citado antes, o código 404 "**NOT FOUND**" indica um erro de digitação (por parte do cliente) na **<u>URL</u>**, por outro lado o 5 indica erro no servidor. Os códigos com número 1 e 3 indicam informação e redirecionamento.

**Cabeçalhos de resposta HTTP:** Os cabeçalhos de resposta **<u>HTTP</u>** transmitem informações importantes como idioma e o formato do corpo da resposta.

**Corpo de resposta HTTP:** As repostas **<u>HTTP</u>** de solicitação **_GET_**, que foram bem-sucedidas, contém informações das solicitações web de dados **_HTML_** que traduzem a página.

**Ataques DDoS lançados em HTTP:** O **<u>HTTP</u>** é um protocolo "**sem estado**", então, deve-se lembrar que seus comandos agem de forma independente. Na forma original, a solicitação criava uma conexão TCP e logo em seguida a fechava. As versões mais recentes do **<u>HTTP</u>**, o **<u>HTTP 1.1</u>** e os superiores, conseguem realizar varias solicitações e faze-las passar pela conexão **<u>TCP</u>** de forma rapida e pratica, ajudando o cosumo de recursos.

Os ataques **<u>DoS</u>** e **<u>DDoS</u>** são solicitações que se forem muito grandes (estiverem em uma grande quantidade), podem ser usados para atacar um dispositivo, de forma a serem considerados ataques de camada 7 ou ataques de camada de aplicativo.

**Base:** Artigo escrito com base no texto da Cloudflare

**Motivos:**
 
> **1.** Artigo escrito com intuito de aprendizado, todos os creditos vão para a Cloudflare por incentivar o aprendizado.

> **2.** Fiz totalmente como forma de estudo.

**Referência:** https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/

**Autor:** Moisés Rodrigues Martins