Lição 3

URLs relativas e normalização

Resolva caminhos relativos, preserve intenção e evite mudanças canônicas acidentais.

Nem toda URL que você encontra é absoluta. HTML, roteadores, redirects e arquivos de configuração frequentemente usam URLs relativas.

/account/settings
../images/logo.png
?page=2

URLs relativas precisam de uma base antes de serem resolvidas.

A base importa

Dada esta base:

https://example.com/docs/guides/url/

../api/ resolve para:

https://example.com/docs/guides/api/

Se a base mudar para /docs/guides/url, sem barra final, o resultado pode mudar porque o último segmento pode ser tratado como arquivo.

Normalização

Normalização torna URLs equivalentes mais consistentes. Exemplos:

  • Remover portas padrão
  • Resolver segmentos . e ..
  • Colocar hosts em minúsculas
  • Ordenar parâmetros para forma canônica

Normalização é útil, mas pode ser perigosa quando identidade byte a byte importa.

Preserve a intenção

Evite normalizar URLs assinadas, chaves de cache, redirects OAuth ou callbacks de terceiros sem conhecer as regras canônicas exatas. Uma reescrita aparentemente inofensiva pode invalidar uma assinatura ou mudar o endpoint que recebe a requisição.

O parsing ajuda porque permite ver o que vai mudar antes de reconstruir a URL.

Voltar à visão geral do curso