Pular para conteúdo

Aula 12 - Estrutura do HTTP ✉️

Objetivo

Objetivo: Desvendar o protocolo que move a Web. Entender como são montados os pedidos (Requests) e as respostas (Responses), conhecendo métodos, cabeçalhos e corpos de dados.


1. O Protocolo Sem Estado (Stateless) 🧩

O HTTP é como uma conversa onde o servidor "esquece" quem você é assim que a resposta é enviada. Para ele lembrar de você (login), usamos cookies e sessões (veremos adiante).


2. A anatomia do Pedido (Request) 📩

Toda vez que o navegador pede algo, ele envia esse formato:

GET /produtos/notebook HTTP/1.1
Host: www.loja.com
User-Agent: Mozilla/5.0
Accept: text/html
  • Método: O que eu quero fazer (GET, POST...).
  • Recurso: Onde está o arquivo (/produtos).
  • Cabeçalhos (Headers): Informações extras (quem sou eu, o que aceito).

3. Os Métodos HTTP (Verbos) 🛠️

Os verbos dizem ao servidor a intenção do usuário:

Verbo Ação Exemplo
GET Ler/Buscar dado Ver uma foto no Instagram
POST Criar/Enviar dado Login ou comentário
PUT Atualizar dado Mudar foto de perfil
DELETE Excluir dado Apagar um post

4. A anatomia da Resposta (Response) 📥

O servidor responde com:

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1024

<html>...</html>
  • Status Code: Deu certo? (200 OK, 404 Not Found).
  • Response Headers: Informações do servidor.
  • Body (Corpo): O dado real (HTML, JSON, imagem).

5. Praticando com "Curl" 💻

Vamos ver o HTTP puro no terminal:

$ curl -v https://www.google.com
# O "-v" (verbose) mostra os cabeçalhos de ida e volta!

🚀 Atividade Prática: Detetive HTTP

  1. Use o comando curl -I para o site da sua faculdade ou escola.
  2. Identifique o Content-Type (é text/html?).
  3. Verifique o campo Server (qual tecnologia eles usam?).

🧠 Exercícios de Fixação

  1. Qual a diferença prática entre um GET e um POST? (Dica: onde as informações ficam visíveis?).
  2. O que são os Headers (Cabeçalhos) em uma requisição HTTP?
  3. Por que dizemos que o HTTP é um protocolo de Texto Puro (originalmente)?

Próxima Aula: Deu erro? Entenda os Status e Sessões do HTTP! 🚦