Est-ce que [ et ] ont une signification particulière dans les URL?
En PHP, cela permet de faire passer une variable POST/GET sous forme de tableau plutôt que de chaîne de caractères.
Demander cette URL : http://www.arcep.fr/index.php?id=8571&tx_gsactualite_pi1[uid]=1640&tx_gsactualite_pi1[backID]=26&cHash=c5c83c0f3115509e9ffbc4d8a9377c73
Ou cette URL :
http://www.arcep.fr/index.php?id=8571&tx_gsactualite_pi1%5Buid%5D=1640&tx_gsactualite_pi1%5BbackID%5D=26&cHash=c5c83c0f3115509e9ffbc4d8a9377c73Provoquera l'assignation des variables suivantes en interne :
$_GET['id'] = '8571';
$_GET['tx_gsactualite_pi1'] = array(
'uid' => '1640',
'backID' => '26',
'cHash' => 'c5c83c0f3115509e9ffbc4d8a9377c73'
);
Si.
Les liens semblent être présents avec les crochets encodés par endroits sur le site de l'ARCEP, mais sans changement uniforme. Ils ne sont par exemple pas encodés dans la colonne de droite de la page d'accueil, et j'observe globalement plus de crochets décodés qu'encodés.
Non, le navigateur n'encode rien du tout il copie l'URL.
Firefox effectue bien un décodage, après chargement, au moment d'afficher l'URL dans la barre d'adresse, et un réencodage au moment où l'utilisateur copie l'URL depuis celle-ci.
Si je consulte une URL du site de l'ARCEP, même si les crochets dans l'URL d'origine sont encodés, Firefox les affichera décodés, et les copiera décodés si la copie est faîte depuis la barre d'adresse (donc si changement dans les liens il y a eu par endroits, ça ne porte qu'un intérêt limité, avec Firefox en tous cas).
Si je vais sur cette URL :
http://perdu.com/?%C3%A9=%C3%A9Ou sur cette URL :
http://perdu.com/?é=éDans les deux cas, Firefox affichera ceci après chargement :
http://perdu.com/?é=éQuand je copierai la totalité URL, Firefox effectuera un réencodage, qui ne sera pas visible au niveau de la barre mais sera présent dans le presse-papiers :
http://perdu.com/?%C3%A9=%C3%A9Mais si je ne copie qu'une partie de l'URL, Firefox n'effectuera pas le réencodage : tp://perdu.com/?é=é
Le traitement est différent selon les caractères. Certains caractères, comme "=", "&" ou "?" quand eux ont été encodés dans l'URL de base, ou les caractères non-imprimables comme 0x00, seront systématiquement affichés encodés dans la barre d'adresse.
Je conçois que le comportement diffère avec Google Chrome.