L'envoi de données à un script CGi se fait par l'intermédiaire
d'un formulaire HTML.
Les formulaires HTML se créent à l'aide de la balise <FORM>
contenant des boutons, des champs, des listes et/ou des cases à cocher repérés
par des noms auxquels seront associés des valeurs, fonction de la saisie des utilisateurs,
puis d'un bouton de soumission du formulaire qui enverra l'ensemble des informations au script
indiqué en tant qu'attribut Action de la balise FORM selon la méthode
GET ou POST. Chaque élément du formulaire doit posséder un nom unique, de
telle façon que la valeur associé à l'élément forme avec le nom
de celui-ci une paire nom/valeur du type:
Nom_de_l_element=valeur
L'ensemble des paires nom/valeur sont séparées par des esperluettes (le caractère
"&"). Ainsi, l'envoi d'un formulaire crée une chaîne de la forme:
champ1=valeur1&champ2=valeur2&champ3=valeur3
L'envoi de cette chaîne se fera différemment selon que la méthode utilisée
pour l'envoi du formulaire est GET ou POST.
La méthode GET permet d'envoyer les éléments du formulaire
au travers de l'URL du script, en ajoutant l'ensemble des paires nom/valeur à l'URL
du script, séparé de celui-ci par un point d'interrogation, ce qui donne
un URL du type:
http://nom_du_serveur/cgi-bin/script.cgi?champ1=valeur1&champ2=valeur2...
Toutefois, la longueur de la chaîne URL étant limitée à 255 caractères,
les informations situées au-delà de cette limite seront irrémédiablement perdues.
De plus, cela crée une URL surchargée dans la barre d'adresse d'un navigateur et peut dévoiler
des informations sensibles comme un mot de passe...
Ainsi, la méthode POST est une bonne alternative à la méthode GET. Cette méthode
code les informations de la même façon que la méthode GET (encodage URL
et paires nom/valeur) mais elle envoie les données à la suite des en-têtes HTTP, dans un champ
appelé corps de la requête. De cette façon la quantité de données envoyées
n'est plus limitée, et est connue du serveur grâce à l'en-tête permettant de connaître
la taille du corps de la requête.
|