← HTTP/HTTPS: aplicações e diagnóstico
02 / 12 · 40 MIN

Métodos, estados e repetição controlada

Relaciona o significado HTTP com decisões que preservam o estado de negócio.

Conceito e mecanismo

A escolha de método tem significado, mas não dispensa conhecer o contrato da API. Idempotência descreve o efeito pretendido de pedidos idênticos repetidos; não exige respostas iguais nem ausência de logging adicional. Um PUT pode criar e depois substituir o mesmo recurso, devolvendo códigos distintos. Isso é diferente de segurança do método: uma operação idempotente pode alterar estado. Um POST sem resposta pode ter sido aplicado antes da falha de comunicação. Se o contrato não garante repetição segura, começa por reconciliar o resultado original. Mudar a referência de negócio ou repetir em várias camadas não resolve automaticamente a incerteza e pode aumentar duplicações.

Aplicação guiada

Um código informa sobre a operação observada. 202 permite aceitar trabalho ainda não concluído; o dashboard deve acompanhar o resultado posterior. Um redirecionamento também tem semântica: 307 preserva o método quando seguido, enquanto 303 orienta obtenção de outra representação. Valida o comportamento do cliente e o destino aprovado. Em atualizações concorrentes, If-Match pode impedir que uma versão antiga sobreponha a atual. Se recebe 412, obtém o estado atual e reconcilia as diferenças antes de repetir com a precondição adequada. Num exercício, duas equipas alteram a mesma configuração; remover If-Match faz desaparecer o erro visível, mas também a proteção contra perda de alterações.

NA PRÁTICA

POST expirado é resultado incerto; 202 é aceitação pendente; 412 pede reconciliação de versão.

Armadilhas comuns

Timeout como rollback; 2xx como conclusão universal; retry ilimitado; remover precondições para eliminar erros.

Tópicos relacionados: O pedido e a representação pretendida · Cache, variantes e validação · Versões e delimitação de mensagens

Leva esta ideia contigo

Decide a repetição a partir do contrato e do estado, não apenas do timeout.

Criar conta

Referência: HTTP Semantics · DR HTTP/HTTPS 2026-09; HTTP RFCs 9110–9114; selected TLS 1.3 and NGINX/curl guidance