CGI - Réception et traitement des données

Décembre 2016

Envoyer des données à un script CGI

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ée à 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.

Méthodes GET et 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.


A voir également :

Ce document intitulé «  CGI - Réception et traitement des données  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.