Chaîne de requête
(Voici le texte de la section liée de l'entrée Wikipedia.)
Structure
Une URL typique contenant une chaîne de requête est la suivante:
http://server/path/program?query_string
Lorsqu'un serveur reçoit une demande pour une telle page, il exécute un programme (s'il est configuré pour le faire), en passant la chaîne query_string inchangée au programme. Le point d'interrogation est utilisé comme séparateur et ne fait pas partie de la chaîne de requête.
Un lien dans une page Web peut avoir une URL qui contient une chaîne de requête, cependant, HTML définit trois façons dont un navigateur Web peut générer la chaîne de requête:
- un formulaire web via l'élément ...
- une image map côté serveur via l'attribut ismap sur l'élément avec une construction
- une recherche indexée via l'élément désormais obsolète
Formulaires Web
L'utilisation principale des chaînes de requête est de contenir le contenu d'un formulaire HTML, également appelé formulaire Web. En particulier, lorsqu'un formulaire contenant les champs champ1, champ2, champ3 est soumis, le contenu des champs est codé comme une chaîne de requête comme suit:
field1=value1&field2=value2&field3=value3...
- La chaîne de requête est composée d'une série de paires champ-valeur.
- Dans chaque paire, le nom et la valeur du champ sont séparés par un signe égal. Le signe égal peut être omis si la valeur est une chaîne vide.
- La série de paires est séparée par l'esperluette, «&» (ou point-virgule, «;» pour les URL incorporées dans HTML et non générées par un ...; voir ci-dessous). Bien qu'il n'y ait pas de norme définitive, la plupart des frameworks Web permettent d'associer plusieurs valeurs à un seul champ:
field1=value1&field1=value2&field1=value3...
Pour chaque champ du formulaire, la chaîne de requête contient une paire champ = valeur. Les formulaires Web peuvent inclure des champs qui ne sont pas visibles pour l'utilisateur; ces champs sont inclus dans la chaîne de requête lorsque le formulaire est soumis
Cette convention est une recommandation du W3C. Le W3C recommande que tous les serveurs Web prennent en charge les séparateurs par point-virgule en plus des séparateurs d'esperluette [6] pour autoriser les chaînes de requête application / x-www-form-urlencoded dans les URL des documents HTML sans avoir à échapper les esperluettes d'entité.
Techniquement, le contenu du formulaire est uniquement codé en tant que chaîne de requête lorsque la méthode de soumission du formulaire est GET. Le même codage est utilisé par défaut lorsque la méthode de soumission est POST, mais le résultat n'est pas envoyé sous forme de chaîne de requête, c'est-à-dire qu'il n'est pas ajouté à l'URL d'action du formulaire. Au contraire, la chaîne est envoyée en tant que corps de la requête HTTP.