it-swarm.it

Quali caratteri speciali sono sicuri da usare in url?

Quali caratteri speciali sono sicuri da usare in url?

13
YOU

I caratteri sicuri sono a-z, A-Z, 0-9 e _ - (trattino basso e meno), che oltre ai caratteri riservati utilizzati per i parametri.

Altri personaggi daranno problemi in una certa misura. esempio: se un parametro è un array ?param=array[content] ie mostrerà un url con le parentesi quadre codificate url, che sembrano brutte e impossibili da dettare.

Ma il problema non è solo brutto, diciamo che hai un jpg con un personaggio oltre a quelli più sicuri, molte volte il browser non sarà in grado di scaricarlo ottenendo un 404. Questo è un problema dei browser più vecchi e di alcuni browser mobili.

Come testarlo?

  • metti un sacco di immagini/js/css con i personaggi che vuoi testare nei nomi in una pagina pubblica con molti visitatori
  • Fai in modo che la pagina 404 ti invii un'email ogni volta che ottiene un successo

Ho una casella di posta con 14000 e-mail che dimostrano il mio punto.

10

I seguenti caratteri hanno un significato speciale nel componente path del tuo URL (il componente path è tutto prima del '?'):

  ";" | "/" | "?"

Oltre a questi, i seguenti caratteri hanno un significato speciale nella parte della query del tuo URL (tutto dopo '?'). Pertanto, se sono dopo il '?' devi scappare da loro:

  ":" | "@" | "&" | "=" | "+" | "$" | ","

Per una spiegazione più approfondita, vedere RFC .

11
Thomas Bonini

Le risposte qui sono buone, ma penso che valga la pena menzionare un'altra eccezione: i caratteri non inglesi. Riferimenti questa domanda SF qui , caratteri come ñ (come in Español) sono perfettamente legittimi, SE sono stati codificati correttamente nel tuo DNS.

Devi usare Punycode all'interno del tuo DNS per risolverli nei browser moderni (la voce español è xn--espaol-zwa) ma questi ora sono perfettamente sicuri da usare nei nomi di dominio, in quanto ' è facile anche per chi non parla inglese.

3
Mark Henderson