Syntaxe de requête HTTP pour traduire le « ou »
En voulant récupérer la liste des ouvrages que j'ai lus ou achetés en 2011, je me suis demandé comment traduire une telle requête avec une url...
Récupérer une (liste de) ressource(s) décrite(s) par deux données ne pose pas de problème :
GET /resource/?f1=v1&f2=v2
f1
à la valeur v1
et f2
à la valeur v2
.J'avais déjà décrit une syntaxe permettant d'intégrer un « ou » pour la valeur d'un champ :
GET /resource/?f1=v1|v2
f1
à la valeur v1
ou v2
.Mais comment écrire une requête telle que : « Ressources où f1
à la valeur v1
OU f2
à la valeur v2
» ?
La construction de la chaîne de requête dans une url HTTP n'est pas vraiment normalisée, à part sont début, marquée par un « ? » et sa fin (un « # » ou la fin de l'url).
<scheme>://<user>@<host>:<port>/<path>?<query>#<fragment>
Lors de la soumission d'un formulaire, les données sont envoyées sous forme de couple clé/valeur, les couples étant séparés par une esperluette (&
) ou un point-virgule. On pourrait envisager de remplacer l'esperluette par le symbole mathématique du « ou » (///∨///, soit « ∨ » en HTML et U+2228
en unicode). Cela pourrait être quelque chose du genre :
GET /resource/?f1=v1∨f2=v2
f1
à la valeur v1
ou f2
à la valeur v2
.- Titre
- Uniform Resource Identifier (URI): Generic Syntax
- chapter
- 3.4. Query
- Auteurs
- Tim Berners-Lee
- R. Fielding
- L. Masinter
- Éditeur
- IETF
- Date
- Titre
- Query string