Auteur Sujet: Intérêt des URL raccourcies  (Lu 5961 fois)

0 Membres et 1 Invité sur ce sujet

corrector

  • Invité
Intérêt des URL raccourcies
« Réponse #12 le: 05 novembre 2014 à 00:37:52 »
Est-ce que [ et ] ont une signification particulière dans les URL?

Nico

  • Modérateur
  • *
  • Messages: 44 492
  • FTTH 1000/500 sur Paris 15ème (75)
    • @_GaLaK_
Intérêt des URL raccourcies
« Réponse #13 le: 05 novembre 2014 à 07:46:42 »
Dans l'url de l'arcep j'ai l'impression que "[uid]=" remplace ce qui habituellement serait noté "&uid=".

Marin

  • Client Bbox vdsl
  • Modérateur
  • *
  • Messages: 2 804
  • 73
Intérêt des URL raccourcies
« Réponse #14 le: 05 novembre 2014 à 10:01:36 »
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=c5c83c0f3115509e9ffbc4d8a9377c73

Provoquera 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%A9
Ou 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%A9
Mais 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.

corrector

  • Invité
Intérêt des URL raccourcies
« Réponse #15 le: 05 novembre 2014 à 14:15:48 »
Si je vais sur cette URL : http://perdu.com/?%C3%A9=%C3%A9
Ou 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%A9
Mais si je ne copie qu'une partie de l'URL, Firefox n'effectuera pas le réencodage : tp://perdu.com/?é=é

()

Je conçois que le comportement diffère avec Google Chrome.
En l'occurrence, non.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 095
  • Paris (75)
Intérêt des URL raccourcies
« Réponse #16 le: 05 novembre 2014 à 14:57:33 »
La norme HTTP ne prévoit pas autre chose qu'une simple liste de valeurs : un nom de variable et sa valeur (key-value pairs).

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=c5c83c0f3115509e9ffbc4d8a9377c73

Provoquera l'assignation des variables suivantes en interne :

$_GET['id'] = '8571';
$_GET['tx_gsactualite_pi1'] = array(
    'uid' => '1640',
    'backID' => '26',
    'cHash' => 'c5c83c0f3115509e9ffbc4d8a9377c73'
);
Le cHash n'est pas dans le tableau je pense.

Sous Chrome DevTools ca donne (F12, charger la page, onglet 'network', cliqueer la ligne du GET, puis onglet 'header'):

id:8571
tx_gsactualite_pi1[uid]:1640
tx_gsactualite_pi1[backID]:26
cHash:c5c83c0f3115509e9ffbc4d8a9377c73

donc 'coté' client c'est 4 variables et leur 4 valeurs. Les crochets étant admis dans le nom d'une variable (mais doivent être "url encodés".cf plus bas).

Une interprétation coté serveur du genre:
$_GET['id'] = '8571';
$_GET['tx_gsactualite_pi1'] = array(
    'uid' => '1640',
    'backID' => '26'
);
$_GET['cHash'] => 'c5c83c0f3115509e9ffbc4d8a9377c73';

est spécifique au serveur (PHP ici). Un autre serveur peut interpréter cela différemment.

Les crochets ("[" et "]") ont été ajouté au "reserved set" qui doit être encodé. Ils ont été introduit pour les adresses IPv6.
Citer
   A host identified by an Internet Protocol literal address, version 6
   [RFC3513] or later, is distinguished by enclosing the IP literal
   within square brackets ("[" and "]").  This is the only place where
   square bracket characters are allowed in the URI syntax
.
Pour bien préciser tout ca il faudrait lire a fond les 60 pages de la http://tools.ietf.org/html/rfc3986 ..;)

et certains aiment pinailler sur le fait que certaines URL ne sont pas des URI stricto sensu, souvent a cause des crochets d'ailleurs.

Marin

  • Client Bbox vdsl
  • Modérateur
  • *
  • Messages: 2 804
  • 73
Intérêt des URL raccourcies
« Réponse #17 le: 05 novembre 2014 à 15:07:06 »
Le cHash n'est pas dans le tableau je pense.

Effectivement, je n'y ai pas mis beaucoup d'attention.