Lição 1
Componentes de uma URL
Separe URLs em esquema, host, porta, caminho, query e fragmento.
Uma URL é um endereço estruturado, não apenas uma string. Depurar fica mais fácil quando você separa os componentes antes de interpretá-la.
https://api.example.com:8443/v1/items?q=blue&page=2#results
Essa URL contém:
- Esquema:
https - Host:
api.example.com - Porta:
8443 - Caminho:
/v1/items - Query:
q=blue&page=2 - Fragmento:
results
Esquema
O esquema informa ao cliente como interpretar o restante da URL. https, http, mailto e file têm regras diferentes.
Host e porta
O host identifica o servidor. A porta seleciona a porta de rede. Portas padrão como 443 em HTTPS normalmente são omitidas na visualização, mas portas explícitas importam em desenvolvimento local e depuração de serviços.
Caminho
O caminho identifica um recurso dentro do host. Ele é hierárquico, então /users/42 e /users/42/ podem ser diferentes dependendo do servidor.
Query
A query começa depois de ? e costuma carregar filtros, paginação, ordenação, campos de tracking e estado OAuth. Parsing de query nem sempre segue uma regra única, porque chaves repetidas e valores vazios podem ser interpretados de formas diferentes.
Fragmento
O fragmento começa depois de #. Navegadores usam esse valor no cliente e normalmente não o enviam ao servidor em requisições HTTP. Isso importa ao depurar por que o servidor não vê parte de um link.
Trate cada componente como uma fronteira. A maioria dos bugs de URL vem de codificar ou reconstruir no limite errado.