Ir para o conteúdo
Idioma: PT

Por que os prefixos de URL são abreviados numa tag?

O formato de registro URI troca um prefixo comum, como o https ou um esquema de e-mail, por um único byte identificador, e guarda apenas o resto do endereço. Isso economiza vários bytes em cada tag, é inteiramente invisível no uso normal, e explica por que um despejo bruto de uma tag mostra um endereço truncado.

O que o formato guarda de fato

Um registro URI começa com um byte que identifica um prefixo de uma lista fixa, e depois guarda o restante do endereço como caracteres comuns.

Então um endereço que começa com um esquema comum não guarda esses caracteres. O leitor procura o prefixo pelo byte e remonta o endereço completo antes de entregá-lo ao sistema.

A lista cobre os esquemas que de fato aparecem em tags: endereços da web com e sem a convenção do www, correio, telefone, e um punhado de outros.

Por que alguns bytes valem a pena

Porque nas menores tags alguns bytes são uma parcela apreciável do que você tem.

Economizar os caracteres de um esquema numa tag com espaço para algumas centenas de bytes de conteúdo é uma porcentagem pequena. Numa tag em que uma URL mal cabe, isso pode ser a diferença entre uma gravação bem-sucedida e uma falha, e é por isso que o formato se dá ao trabalho.

E não custa nada em troca. Não há troca de compatibilidade, não há perda de informação, e não há configuração.

O que você vê numa visão bruta

É aqui que o mecanismo fica visível, e é aqui que ele confunde as pessoas.

Uma ferramenta que mostra o registro decodificado exibe o endereço completo, como deve. Uma ferramenta que mostra bytes brutos mostra o endereço sem o esquema, precedido de um byte que parece ruído.

Ver um domínio sem https num despejo hexadecimal é, portanto, normal e não sinal de que a tag foi gravada errado. O esquema está lá, codificado como um byte em vez de oito caracteres.

Os limites do truque

Só os prefixos da lista são abreviados. Um esquema incomum, um esquema próprio de um aplicativo, ou um endereço que não comece com nada da lista são guardados por inteiro, com o byte identificador indicando que não há abreviação.

Isso importa quando você está brigando por espaço com um esquema próprio, porque a economia com que você contava não se aplica. Também quer dizer que dois endereços do mesmo tamanho visível podem ocupar quantidades diferentes de memória, dependendo de como começam.

Nada disso muda o que você faz ao gravar uma tag. Uma ferramenta cuida disso, e a lição prática é simplesmente parar de se preocupar quando uma visão bruta parece errada.

Perguntas frequentes

Eu preciso fazer algo para usar a abreviação?

Não. Qualquer ferramenta que grave um registro URI a aplica automaticamente quando o endereço começa com um prefixo reconhecido, e os leitores a revertem com a mesma automaticidade.

Por que minha tag mostra uma URL sem https num despejo hexadecimal?

Porque o esquema é guardado como um único byte identificador em vez de caracteres. Decodifique o registro em vez de ler bytes brutos e o endereço completo aparece.

Isso funciona para esquemas próprios de aplicativos?

Só se o esquema estiver na lista fixa, o que os próprios não estão. Eles são guardados por inteiro, então um esquema próprio custa mais espaço que um padrão do mesmo tamanho visível.

Isso pode fazer uma tag se comportar de modo diferente entre celulares?

Não. O mecanismo faz parte do formato de registro e todo leitor conforme o implementa de modo idêntico. As diferenças entre plataformas vêm dos tipos de registro, não da codificação do prefixo.