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
- Salve a URL original exatamente como foi observada.
- Faça parse em componentes.
- Decodifique valores apenas na camada que está inspecionando.
- Compare componentes esperados e reais.
- Reconstrua a URL com regras explícitas.
O objetivo não é deixar a URL bonita. O objetivo é preservar o significado esperado pelo sistema receptor.