Quels caractères spéciaux peuvent être utilisés en toute sécurité dans l'URL?
Quels caractères spéciaux peuvent être utilisés en toute sécurité dans l'URL?
Réponses:
Les caractères sûrs sont az, AZ, 0-9 et _ - (soulignement et moins), qui en plus des caractères réservés qui sont utilisés pour les paramètres.
D'autres personnages poseront des problèmes dans une certaine mesure. exemple: si un paramètre est un tableau, ?param=array[content]
c'est-à-dire qu'il affichera une URL avec les crochets encodés, qui ont l'air moche et impossible à dicter.
Mais le problème n'est pas seulement laid, disons que vous avez un jpg avec un caractère à côté des plus sûrs, plusieurs fois le navigateur ne pourra pas le télécharger en obtenant un 404. C'est un problème des navigateurs plus anciens et de certains navigateurs mobiles.
Comment tester cela?
J'ai une boîte de réception avec 14 000 e-mails prouvant mon point.
Les caractères suivants ont une signification particulière dans le composant chemin de votre URL (le composant chemin est tout avant le «?»):
";" | "/" | "?"
En plus de ceux-ci, les caractères suivants ont une signification particulière dans la partie requête de votre URL (tout après «?»). Par conséquent, s'ils sont après le "?" vous devez leur échapper:
":" | "@" | "&" | "=" | "+" | "$" | ","
Pour une explication plus approfondie, voir le RFC .
Les réponses ici sont bonnes, mais il y a une autre exception, je pense, qui mérite d'être mentionnée - les caractères non anglais. En faisant référence à cette question SF ici , les caractères comme ñ (comme en Español) sont parfaitement légitimes, S'ils ont été correctement encodés dans votre DNS.
Vous devez utiliser Punycode dans votre DNS pour les résoudre dans les navigateurs modernes (l'entrée pour español est xn--espaol-zwa
), mais ceux-ci sont désormais parfaitement sûrs à utiliser dans les noms de domaine, car ils sont également faciles à taper pour les non-anglophones. .