Lição 4

Depurando URLs em logs e APIs

Use componentes analisados para depurar redirects, assinaturas, cache keys e tracking links.

Quando um bug de URL aparece em produção, a string completa costuma ser ruidosa. Faça parse primeiro e compare componentes.

Bugs de redirect

Para redirects, confira:

  • Esquema e host
  • Path com ou sem barra final
  • Valores de query que contêm URLs codificadas
  • Fragmentos que nunca chegam ao servidor

Bugs de redirect OAuth costumam se esconder dentro de URLs aninhadas:

redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Fnext%3D%252Fbilling

Decodifique uma camada por vez. Decodificar tudo de uma vez pode esconder qual camada possui qual delimitador.

Bugs de assinatura

Para URLs assinadas, compare:

  • Ordem dos parâmetros
  • Percent-encoding
  • Campos incluídos e excluídos
  • Timestamp e expiração
  • Regras de caixa para host e path

Quem assina e quem verifica precisam canonicalizar a URL do mesmo modo.

Bugs de cache

Caches podem tratar estas URLs como diferentes:

?a=1&b=2
?b=2&a=1

Ou podem normalizá-las para a mesma chave de cache. Saiba qual regra seu CDN, proxy ou camada de aplicação usa.

Fluxo prático

  1. Salve a URL original exatamente como foi observada.
  2. Faça parse em componentes.
  3. Decodifique valores apenas na camada que está inspecionando.
  4. Compare componentes esperados e reais.
  5. Reconstrua a URL com regras explícitas.

O objetivo não é deixar a URL bonita. O objetivo é preservar o significado esperado pelo sistema receptor.

Voltar à visão geral do curso