Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

02 - 2xx - Sucesso (200 OK)

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

O Código 200 OK é o sinalizador universal de sucesso absoluto em uma transação HTTP. Padronizado na RFC 7231, ele informa ao Cliente (User-Agent) que a requisição foi recebida, compreendida, processada e aceita pelo servidor com êxito. É a resposta mais comum e desejada da rede mundial, sendo o indicador técnico de que o "contrato" entre o solicitante e o provedor foi cumprido, resultando na entrega íntegra do recurso solicitado através da Web.


1. Visão Geral da Família 2xx

A família de códigos 2xx (Sucesso) indica que a requisição do cliente foi recebida, entendida e processada com sucesso pelo servidor. A RFC 7231 (obsoleta pela RFC 9110 em 2022) define seis códigos principais nesta categoria, cada um com uma semântica específica para diferentes cenários de sucesso.

Código Nome Quando usar
200 OK Resposta genérica de sucesso com corpo
201 Created Novo recurso criado com sucesso
202 Accepted Requisição aceita para processamento assíncrono
203 Non-Authoritative Information Metadados modificados por proxy
204 No Content Sucesso sem corpo de resposta
206 Partial Content Resposta parcial (Range requests)

2. Semântica e Uso em Diferentes Métodos

O significado técnico de um 200 OK varia ligeiramente dependendo do verbo HTTP utilizado na requisição:
- GET: Indica que o recurso foi localizado no servidor e está sendo enviado no corpo da mensagem.
- POST: Indica que a ação (ex: login, processamento) foi executada com sucesso e que o resultado está sendo comunicado na resposta.
- PUT / DELETE: Embora códigos como 204 (No Content) sejam comuns, o 200 OK pode ser usado para confirmar que a alteração ou remoção foi concluída, devolvendo uma representação de status.
- HEAD: Indica sucesso, mas seguindo a regra do método, o servidor envia apenas os cabeçalhos sem o corpo da mensagem.


3. Anatomia de uma Resposta 200 OK

Uma resposta de sucesso estruturada contém elementos vitais para a rede:
1. Status Line: HTTP/1.1 200 OK
2. Date Header: Indica o momento exato da geração da resposta.
3. Content-Type: Informa a natureza dos dados (ex: text/html, application/json).
4. Content-Length: O tamanho em bytes do corpo da mensagem.
5. Corpo (Entity Body): Os dados reais solicitados (o HTML da página, a imagem do logo ou os dados de um perfil de usuário).


4. 201 Created — Criação de Recurso

O código 201 Created deve ser retornado sempre que uma requisição resultar na criação de um novo recurso no servidor. É a resposta semanticamente correta para operações de POST em APIs RESTful que criam registros.

Boas Práticas

  • Header Location obrigatório: Deve incluir o cabeçalho Location apontando para a URI do novo recurso criado.
  • Corpo opcional: Pode retornar a representação do recurso criado, mas não é obrigatório.
HTTP/1.1 201 Created
Location: /api/usuarios/4587
Content-Type: application/json

{"id": 4587, "nome": "Ana", "criado_em": "2024-01-15T10:30:00Z"}

5. 202 Accepted — Processamento Assíncrono

O 202 Accepted indica que a requisição foi aceita para processamento, mas este ainda não foi concluído. É essencial para operações longas como importação de planilhas, geração de relatórios ou processamento de vídeos, onde o servidor enfileira a tarefa e responde imediatamente.

  • Uso típico: Filas de mensagens (RabbitMQ, Kafka), jobs em background (Celery, Sidekiq).
  • Polling: O cliente deve consultar posteriormente outro endpoint para verificar o status.

6. 204 No Content — Sucesso Silencioso

O 204 No Content é a resposta mais otimizada em termos de banda. Indica sucesso na operação, mas o servidor não tem nada a enviar no corpo da resposta. É o padrão para respostas de DELETE bem-sucedido ou PUT quando o cliente já possui a versão mais recente.

Vantagens Técnicas

  • Economia de banda: Sem corpo na resposta, apenas cabeçalhos.
  • Sem Content-Length: O header pode ser omitido.
  • Fechamento limpo: Indica ao cliente que não há mais dados a ler do socket.

7. 206 Partial Content — Transferência em Partes

O 206 Partial Content é retornado quando o cliente solicitou apenas uma parte do recurso usando o cabeçalho Range. É a base do streaming de vídeo (YouTube, Netflix) e do download resumível, permitindo pular para uma posição específica do arquivo.

HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/10240
Content-Length: 1024

<1024 bytes do arquivo>

8. O Impacto do 2xx no Caching

Respostas de sucesso com código 200 são, por padrão, Cacheáveis.
- Navegadores: Guardam a resposta 200 OK localmente para evitar uma nova requisição na próxima visita, economizando banda e tempo.
- CDNs (Content Delivery Networks): Utilizam o 200 OK como sinal verde para distribuir cópias da resposta em nós globais, acelerando drasticamente o acesso mundial à informação.
- Invalidação: Se o servidor enviar cabeçalhos de frescor inadequados em um 200 OK, o recurso pode ficar "preso" no navegador, impedindo que o usuário veja atualizações recentes.


9. Perspectiva de Cyber Security

Para um analista de Cyber Security, um excesso de respostas 200 OK pode indicar atividades anômalas, como scraping massivo de dados por bots.

Falsos Sucessos e "Soft 404"

Uma prática técnica desaconselhada é o chamado "Soft 404", onde o servidor retorna uma página de erro visual, mas com o código 200 OK.
- O Problema: Isso confunde rastreadores (Googlebot), fazendo-os indexar páginas de erro como conteúdo válido, e prejudica ferramentas de monitoramento de segurança que dependem dos códigos de status para detectar falhas reais na aplicação.

Extração de Dados em Respostas 200 OK

Atacantes buscam respostas 200 OK em APIs para identificar se metadados sensíveis foram vazados acidentalmente no corpo da resposta (como versões de bibliotecas, caminhos de diretório internos ou tokens de depuração). Auditorias de segurança analisam minuciosamente o conteúdo que acompanha o código de sucesso.


10. Auditoria Técnica e Diagnóstico

Validar a conformidade técnica da resposta de sucesso permite otimizar a infraestrutura:

# Inspecionando os cabecalhos de um 200 OK via curl
curl -I https://www.google.com

# Verificando a presenca de compressao (gzip/br) em uma resposta de sucesso
curl -v -H "Accept-Encoding: gzip" https://www.meusite.com.br

# Solicitando um intervalo de bytes (gera 206 Partial Content)
curl -H "Range: bytes=0-1023" -o parte.bin https://site.com/arquivo.zip

# Criando recurso via POST e verificando se retorna 201
curl -i -X POST -H "Content-Type: application/json" \
     -d '{"nome":"Ana"}' https://api.site.com/usuarios

11. Diferenciação Entre Códigos 2xx

Para uma gestão de rede profissional, o uso exclusivo do 200 OK é insuficiente. A escolha correta do código 2xx comunica ao cliente exatamente o que aconteceu no servidor:

  • 200 OK: Sucesso genérico, com corpo de resposta.
  • 201 Created: Novo recurso foi criado (sempre acompanha Location).
  • 202 Accepted: Processamento deferido para segundo plano.
  • 204 No Content: Sucesso sem corpo (ideal para DELETE e PUT sem retorno).
  • 206 Partial Content: Resposta parcial de uma requisição Range.

12. Conclusão: A Confirmação do Fluxo Web

A família de códigos 2xx é o sinal de "missão cumprida" na rede digital. O 200 OK é o retorno mais comum, mas o uso semântico correto dos códigos 201, 202, 204 e 206 comunica ao cliente precisamente o estado resultante da operação. Dominar a semântica de cada código, entender a estrutura de dados que os acompanha e acompanhar as políticas de caching associadas a estes códigos garante que a infraestrutura web seja não apenas funcional, mas veloz, precisa e passível de auditoria em um cenário técnico global de alto nível.