• Aller au contenu
  • Aller au menu
  • Aller à la recherche

CPU ⬜ Carré Petit Utile

CPU

Carré, Petit, Utile : Le programme radio des gens du numérique.
Tous les Jeudi à 11h sur Radio <FMR>

  • Programmes
  • Interviewes
  • Chroniques
  • Chercher
  • Suivez-nous !
  • CPU
  • ⬜
  • Chroniques
  • ›
  • Standard
  • ›
  • Standard : URL Point 4 : D'interrogation, la question
  • ← précédent
  • ⬜
  • suivant →

Standard : URL Point 4 : D'interrogation, la question

jeudi 12 octobre 2023. Chroniques › Standard

  • communication
  • infrastructure
  • protocole
  • réseau
  • standard
  • web

Extrait de l'émission CPU release Ex0214 : Disséquons une URL, seconde partie.

Après le protocole, l'autorité, le chemin et le fichier, l'URL n'est pas terminée : on passe aux paramètres.

Lors de sa conception, le principe d'URL ne parle pas uniquement de la ressource, le document que l'on veut récupérer, mais aussi des dialogues avec ce fichier, qui peut être un programme actif.

J'avais déjà rapidement abordé le principe des paramètres, c'était dans le chemin de fichiers pour une fonction totalement… oubliable.
On va voir qu'il y a deux catégories de paramètres :

  • ceux qui s'adressent au serveur où vous faites votre requête,
  • ceux qui s'adressent au logiciel client avec lequel vous affichez le résultat de votre requête.

À noter que désormais, ces rôles ont tendance à remonter dans le chemin de fichiers, aussi bien pour les paramètres serveurs depuis une vingtaine d'années que les paramètres navigateurs depuis 5 ans, grâce aux boites à outils des single page applications, des applications javascripts côté navigateur. Mais ce dernier cas est extrêmement particulier, car il ne peut fonctionner hors du contexte d'un client ultra spécifique, ce qui trahit un peu l'intention universelle de l'URL.
On va parler du fonctionnement intentionnel de la norme, dans son mode natif.

Dans l'URL, après le chemin, le nom de fichier et après le symbole ?, suit le query, la requête, ou plus humainement, la question, qui indique au serveur les paramètres de la ressource qu'on demande. Ces paramètres s'adressent d'abord au serveur à qui vous envoyez l'URL.

Oui, dans une URL, le query se trouve après le ?, alors que… c'est une question… Tim Berners Lee, l'inventeur du web, devait somnoler en espagnol LV2.

¡ Ayayaya ! ¿ Te quiero la puntuación, muchacho ?
[dit dans un espagnol très très approximatif]

Le query exprime une demande. À l'origine d'ailleurs, cette requête était construite à partir d'un formulaire qu'on dit alors en mode GET, c'est-à-dire que les données entrées dans le formulaire sont renvoyées au serveur dans l'URL.
Ces données se présentent en général par des paires de mots-clés associés à des valeurs. Regardez la barre d'adresse de votre navigateur web, vous verrez souvent après le point d'interrogation des motifs clé=valeur avec des & en guise de séparateurs.

(oui, je dis esperluette, mais on dit parfois un et commercial et en anglais ampersand. Regardez bien, si si, ce symbole, qui est sur la touche du 1 représente le mot et français).

L'usage de la notation clé=valeur n'est que conventionnelle, de même que le séparateur &. Par exemple, sur certains serveurs, le séparateur dans le query peut être un ;. J'ai aussi vu des deux points à la place du signe =… Sauf que la notation clé=valeur et l'usage d'une esperluette en séparateur furent popularisés par les navigateurs web qui les utilisent nativement. C'est à dire que si vous construisez dans une page HTML un formulaire en mode GET avec quelques champs de données, un navigateur restituera toujours ces données dans la query avec les symboles = et &. Faire autrement marchera tant que vous ne mettez aucun formulaire dans vos pages.

Et en fait, pour votre navigateur, la notation n'est pas clé=valeur mais clé=valeur1,valeur2. C'est à dire que si le serveur web est bien fichu, il peut accepter plusieurs valeurs à la fois pour une même clé, pour construire un groupe de valeurs, une liste, ou un tableau. Quand je dis que c'est la notation préférée de votre navigateur, c'est qu'on la retrouve sur un formulaire en mode GET avec des valeurs multiples ou avec une image ismap.
Mettre dans un lien une image avec un attribut ismap est une vieille stratégie pour rendre une image cliquable avec plusieurs zones complexes menant à différentes destinations, comme par exemple une carte de France découpée en départements, ou un plan interactif des boutons d'acnée de votre petit neveu. Comme c'est une pratique du web du précédent millénaire, sa mise en place est assez primitive : Le navigateur ne connaît pas où mène chaque zone active, c'est le serveur qui l'interprète.

En gros, si vous cliquez sur une telle image, dans l'URL que vous suivrez, vous trouverez après le point d'interrogation deux valeurs numériques, pour les coordonnées X,Y où vous aurez cliqué, donc deux valeurs séparées par une virgule, oui, la clé est alors implicite. Cette notation n'a rien d'obsolète, elle existe toujours pour les navigateurs avec des applications plus récentes, par exemple sur un champ multiple d'e-mails <input type=email required multiple>.

Exemple

[C'est compliqué à expliquer à la radio mais puisque vous êtes sur la page web de cette chronique, voici un exemple à tester. Le champ ci-dessous n'accepte que les adresses e-mail, mais on peut en mettre plusieurs, séparés par des espaces. Avez-vous noté que les espaces sont tolérés près de la virgule, mais supprimés à l'envoi ? À noter que nous vous renvoyons sur votre adresse locale afin de ne pas stocker par erreur une adresse e-mail. Une fois envoyé, admirez la fin de l'URL et faites retour arrière pour revenir ici]


Suite de la chronique

Encore une fois, la syntaxe sur l'envoi de données listées, de tableaux de valeurs associés à une même clé, n'est que conventionnelle. Le standard de l'URL la décrit, mais ne donne qu'une suggestion d'usage. D'autres construiront les tableaux de valeurs différemment : Par exemple, le langage PHP, pour une liste (un array) attend un montage du type clé[]=valeur1&clé[]=valeur2.
Je développe du PHP depuis 25 ans, cette construction fonctionne parfaitement, même si sincèrement, cette notation me frustre un petit peu car elle tue l'unicité d'usage d'une clé. Mais bon,… ça passe, et entre les crochets on peut préciser l'index du tableau pour la valeur donnée, voire cumuler des crochets pour construire un tableau multidimensionnel.

[Suite : Histoire : Et Altavista montra son q=]

Interview : Da Scritch
Illustration : Requête Dall-E A sharp symbol and a question mark symbols floatting in a library, libéré en CC.

Pièces jointes

  • 0214-CPU-Standard-query(12-10-23).mp3

Aucun commentaire

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées. Votre e-mail ne sera pas affiché.

Menu

Catégories

  • Programmes
  • Interviewes
  • Chroniques
    • Enfant du futur immédiat
    • Ainsi naquit
    • Artefact du passé
    • Feedback
    • Histoire
    • How to
    • La mascotte
    • Le Gourou
    • Lexique
    • Plantage
    • Standard
    • Archéologie du Futur
    • Légende
    • Paillasse du design
  • Hors micro
  • Teaser

Séries

  • Arrière-guichet
  • Au service informatique de Sa Majesté
  • Bio is the new Black
  • Bulletin de santé d´Internet 2017
  • Crie si tu sais…
  • Elles codent
  • Futurs alternatifs
  • Histoires de la cryptographie
  • Killed By App
  • Langages machine
  • lost and found
  • Made in Japan 日本製
  • Paranoid android
  • Parce que c’est Notre Projet Souverain
  • Quelque chose de totalement différent
  • Radio numérique
  • Read That Funky Manual !
  • Recycle
  • Situation critique
  • Webmasters

Toutes les séries

Mots-clés

  • communication
  • communauté
  • politique
  • infrastructure
  • développement
  • design
  • matériel
  • standard
  • organisation
  • logiciel
  • sécurité
  • éducation
  • électronique
  • éthique
  • maker
  • humour
  • marketing
  • prototypage
  • web
  • vie privée

Tous les mots-clés

Menu extra

Suivez-nous !

  • 🎵 Podcast des émissions
  • 🎧 …pour Android
  • 🎧 …via Apple Podcast
  • 🎧 …via Google Podcast
  • 🎧 …en newsletter
  • Comment faire

Réseaux sociaux

  • @cpu@Mastodon.tetaneutral.net
  • BlueSky @cpu.pm
  • Xwitter @CPUprogramme
  • LinkedIn company/cpuprogramme
  • Facebook /programmecpu
  • Nous écrire par e-mail

Développeurs

  • Da Scritch
  • Enflammée
  • Gabriel
  • Infested Grunt
  • Solarus
  • René Speranza
  • Toute l'équipe

Producteurs

  • Radio <FMR>
  • Silicium
  • Ça Fait Écho
  • Régie publicitaire

Code source (github)

  • CPU-Audio web component
  • Thème Dotclear "CPU-15"
  • CPU podcaster
  • Youtube future playlist

Pages juridiques

  • Documentation du programme
  • Licence de l'émission et des sonores
  • Politique de confidentialité 🍪
  • Mentions légales

Interviewes et chroniques en licence CC-BY-NC ⬜ Émissions © DaScritch et l'équipe pour Radio <FMR> ⬜ Propulsé par Dotclear