Sobre
Turmas
Projetos
Time
Materiais
Artigos
Aulas
PT
EN
Materiais
Materiais
· Backend
3. HTTP a Linguagem das APIs
Introdução a HTTP
49 min de leitura
→
Anterior
2. Fundamentos de Redes para APIs
Próximo
4. JSON e Contratos de API
→
Nesta página
3.1. O que é HTTP
Por que HTTP existe
Características importantes do HTTP
HTTP é cliente servidor
HTTP é orientado a mensagens
HTTP é stateless
O que compõe uma requisição HTTP
O que compõe uma resposta HTTP
O papel dos headers
HTTP e HTTPS
Exemplo
Checklist rápido
Fontes
3.10. CORS e políticas de mesma origem
O que é origem
O que a política de mesma origem faz
Onde CORS entra
Preflight: por que às vezes aparece uma requisição OPTIONS
O que o servidor precisa responder em CORS
Exemplo
Problemas clássicos de iniciante
Checklist rápido
Fontes (para leitura)
3.11. HTTP/1.1, HTTP/2 e HTTP/3
O que muda entre as versões, em uma frase
HTTP/1.1
HTTP/2
HTTP/3
O que muda para você como quem constrói APIs
Exemplo
Quando faz sentido se preocupar com isso
Problemas clássicos de iniciante
Checklist rápido
Fontes (para leitura)
3.2. Estrutura de uma requisição HTTP
Visão geral da mensagem
Linha inicial
Método
Alvo da requisição
Versão do HTTP
Cabeçalhos
Linha em branco
Corpo
Exemplo
Exemplo 1: requisição sem corpo (leitura)
Exemplo 2: requisição com corpo (criação)
Problemas clássicos de iniciante
Checklist rápido
Fontes
3.3. Estrutura de uma resposta HTTP
Visão geral da mensagem
Linha inicial
Cabeçalhos
Linha em branco
Corpo
Exemplo
Exemplo 1: sucesso com corpo JSON
Exemplo 2: erro com corpo JSON
Exemplo 3: sucesso sem corpo
Problemas clássicos de iniciante
Checklist rápido
Fontes
3.4. Métodos HTTP e semântica
O que significa semântica em HTTP
Métodos mais comuns em APIs
GET
POST
PUT
PATCH
DELETE
Métodos menos usuais, mas que vale menção
OPTIONS
HEAD
Duas propriedades que ajudam a entender métodos
Segurança
Idempotência
Exemplo
Exemplo 1: leitura com GET
Exemplo 2: criação com POST
Exemplo 3: atualização parcial com PATCH
Problemas clássicos de iniciante
Checklist rápido
Fontes
3.5. Códigos de status HTTP
Como ler status code
2xx: sucesso
OK
Created
No Content
3xx: redirecionamento
Moved Permanently e 302 Found
4xx: erro do cliente
Bad Request
Unauthorized
Forbidden
Not Found
Conflict
Unprocessable Content
5xx: erro do servidor
Internal Server Error
Bad Gateway
Service Unavailable
Gateway Timeout
Como escolher status codes sem complicar
Exemplo
Exemplo 1: criação bem sucedida
Exemplo 2: tentativa sem autenticação
Exemplo 3: backend lento e timeout no caminho
Problemas clássicos de iniciante
Checklist rápido
Fontes
3.6. Cabeçalhos fundamentais para APIs
O que são cabeçalhos
Cabeçalhos mais importantes na requisição
Host
Accept
Content-Type
Authorization
Cabeçalhos mais importantes na resposta
Content-Type
Location
Cache-Control
ETag e If-None-Match
Exemplo
Exemplo 1: cliente pedindo JSON e enviando autenticação
Exemplo 2: cliente enviando JSON no corpo
Exemplo 3: criação com Location e resposta em JSON
Exemplo 4: cache com validação usando ETag
Confusões de iniciantes
Checklist rápido
Fontes
3.7. Negociação de conteúdo
O que o cliente informa
Accept
Accept-Language
Accept-Encoding
O que o servidor confirma
Content-Type
Content-Language e Content-Encoding
Como o servidor decide
Exemplo
Exemplo 1: o cliente pede JSON e o servidor responde JSON
Exemplo 2: o mesmo recurso em outro formato
Exemplo 3: idioma preferido para mensagens
Problemas clássicos de inicante
Checklist rápido
Fontes
3.8. Caching em APIs HTTP
O que significa uma resposta ser cacheável
Cache em três lugares
Cache no cliente
Cache em intermediários
Cache no servidor
Cabeçalhos que controlam cache
Cache-Control
Expires
Revalidação: cache sem entregar coisa velha
Cache e segurança em APIs
Exemplo
Exemplo 1: resposta pública com validade curta
Exemplo 2: revalidação com ETag
Exemplo 3: dados sensíveis sem cache
Problemas clássicos de iniciante
Checklist rápido
Fontes
3.9. Cookies, sessões e APIs
O que é um cookie
O que é uma sessão
Por que cookie e sessão aparecem juntos
Como isso se aplica em APIs
Quando faz sentido usar cookies e sessão
Quando isso pode ser ruim ou limitante
Cookies e segurança
Exemplo
Exemplo 1: servidor criando um cookie de sessão
Exemplo 2: por que um cookie não deve carregar dados sensíveis
Problemas clássicos de iniciante
Checklist rápido
Fontes