Vai al contenuto
Lingua: IT

Perché i prefissi URL sono abbreviati su un tag?

Il formato del record URI sostituisce un prefisso comune, come https o uno schema di posta, con un solo byte identificatore, e conserva soltanto il resto dell'indirizzo. Risparmia diversi byte su ogni tag, è del tutto invisibile nell'uso normale, e spiega perché un dump grezzo di un tag mostra un indirizzo troncato.

Cosa conserva davvero il formato

Un record URI comincia con un byte che identifica un prefisso preso da un elenco fisso, poi porta il resto dell'indirizzo come caratteri normali.

Quindi un indirizzo che comincia con uno schema comune non conserva affatto quei caratteri. Il lettore ricava il prefisso dal byte e ricompone l'indirizzo completo prima di consegnarlo al sistema.

L'elenco copre gli schemi che compaiono davvero sui tag: indirizzi web con e senza la convenzione www, posta, telefono, e una manciata di altri.

Perché pochi byte valgono la pena

Perché sui tag più piccoli pochi byte sono una quota non trascurabile di quello che hai.

Risparmiare i caratteri di uno schema su un tag con spazio per un paio di centinaia di byte di contenuto è una percentuale piccola. Su un tag dove un URL ci sta a stento, può essere la differenza tra una scrittura riuscita e un fallimento, ed è per questo che il formato se ne occupa.

In cambio non costa nulla. Non c'è uno scambio di compatibilità, non si perde informazione, e non c'è niente da configurare.

Cosa vedi in una vista grezza

È qui che il meccanismo diventa visibile, ed è qui che confonde.

Uno strumento che mostra il record decodificato mostra l'indirizzo completo, come deve. Uno strumento che mostra i byte grezzi mostra l'indirizzo senza il suo schema, preceduto da un byte che sembra rumore.

Vedere un dominio senza https in un dump esadecimale è quindi normale e non è il segno che il tag sia stato scritto male. Lo schema c'è, codificato come un byte invece che come otto caratteri.

I limiti dell'espediente

Vengono abbreviati soltanto i prefissi che stanno nell'elenco. Uno schema insolito, uno schema proprio di un'applicazione, o un indirizzo che non comincia con nulla di quell'elenco vengono conservati per intero, con il byte identificatore impostato a indicare che non c'è abbreviazione.

Conta quando stai lottando per lo spazio con uno schema su misura, perché il risparmio su cui contavi non si applica. Significa anche che due indirizzi della stessa lunghezza visibile possono occupare quantità di memoria diverse a seconda di come cominciano.

Niente di tutto questo cambia quello che fai quando scrivi un tag. Se ne occupa uno strumento, e la conclusione pratica è semplicemente smettere di preoccuparsi quando una vista grezza sembra sbagliata.

Domande frequenti

Devo fare qualcosa per usare l'abbreviazione?

No. Qualunque strumento che scriva un record URI la applica da solo quando l'indirizzo comincia con un prefisso riconosciuto, e i lettori la invertono con la stessa automaticità.

Perché il mio tag mostra un URL senza https in un dump esadecimale?

Perché lo schema è conservato come un solo byte identificatore invece che come caratteri. Decodifica il record invece di leggere i byte grezzi e l'indirizzo completo compare.

Funziona per gli schemi propri di un'applicazione?

Solo se lo schema sta nell'elenco fisso, cosa che quelli su misura non sono. Vengono conservati per intero, quindi uno schema su misura costa più spazio di uno standard della stessa lunghezza visibile.

Questo può far comportare un tag diversamente da un telefono all'altro?

No. Il meccanismo fa parte del formato del record e ogni lettore conforme lo realizza in modo identico. Le differenze tra piattaforme vengono dai tipi di record, non dalla codifica dei prefissi.