Gli spazi non sono una parte fondamentale degli URL: a seconda della loro posizione, si applicano regole diverse per la loro corretta codifica.
Gli standard ufficiali di internet sono definiti nelle cosiddette RFC (Requests for Comments). Nella relativa RFC 3986 gli spazi sono indicati come caratteri non sicuri (“Unsafe characters“). Con questo s’intende che non devono essere lasciati non trattati in un URL, bensì convertiti nel codice (encoded).
I caratteri speciali negli URL sono solitamente espressi dal segno di percentuale e da una sequenza di numeri. Per gli spazi è %20. Per i caratteri speciali di uso frequente esiste un’abbreviazione di questa notazione. Per gli spazi il segno più (“+“) è pensato per questo scopo.
Codifica URL: %20 o segno più (+)?
La domanda successiva è se gli spazi negli URL debbano essere riscritti/codificati (encoded) con la stringa %20 o con un segno più (+). John Müller ci aiuta in questo senso:
Per capire la risposta (“Puoi usare entrambi nella stringa di query, mentre %20 dovrebbe essere usato nel resto dell’URL”) è utile spiegare brevemente da quali parti è formato un URL.
Struttura di un URL
Così com’è descritto nell’articolo di “Chiedi a SISTRIX” sulla struttura degli URL, un URL è comunemente composto da più parti.
La stringa di query è la parte che segue il ?, da qui in poi iniziano i parametri (nell’immagine contrassegnati con il numero 7 in arancione). Allo stesso modo vale:
- Gli spazi negli URL devono essere convertiti in %20. Questa codifica URL può essere applicata all’URL completo.
- Solo nei parametri (cioè la parte dell’URL dopo il punto di domanda), il %20 può essere sostituito dal segno più (+). Questa però è solo un’opzione, non un obbligo.
Consigli riassuntivi
Gli spazi non sono ammessi negli URL. Devono essere sostituiti dalla stringa %20. Nella parta della stringa di query dell’URL. %20 può essere anche abbreviato con un segno più (+).