Documentation de sHTTPd 2.0 sHTTPd

Table des matiŠres Installation Historique

3 Programmation

Quelques exemples sont fournis pour vous aider à programmer votre site.L'étendue des possiblitées est très grande, donc soyez vigilants sur l'accès aux executables.

Un serveur Web (HTTP) à pour but de fournir à un client des fichiers qu'il demande.En fonction du type de fichier indiqué dans une entete, le client recevra du texte ou des données binaires (images, programmes, archives compressées..etc) En fonction de ses capacités, il affichera ou non les données transmises.

MAIS en plus, si le fichier demandé est un programme executable, le serveur executera ce programme en transmettant directement son affichage au client (redirection de sortie).

C'est avec cette méthode que l'on peut transmettre des informations fraiches et immédiates (météo,résultats du LOTO, recherche de fichiers) sans que personne n'ai eut besoin de fabriquer un texte à la main.


Pour faire fonctionner ces exemples, il faut être connecté au serveur. A chaque fois que l'utilisateur de CAB (client) cliquera sur un lien (URL) il provoquera l'éxecution d'un programme sur le serveur.

Le serveur positionne des variables d'environnement, pour la méthode 'POST' redirige l'entrée standard du programme pour qu'il puisse y récupérer les données transmises et redige la sortie standard du programme vers le client.

Cette méthode est assez classique, je vous engage donc à consulter les nombreuses documentations sur la programmation des serveurs WEB et les sources fournies.



> Execution d'un programme simple:
Pour commencer, voici un exemple simple qui necessite forcement l'utilisation d'un programme (souvent appelé 'script CGI').

Imaginons que nous proposons au client de lui donner l'heure.Cette information change toutes les secondes et comme il n'est pas question d'éditer un ficher à la main pour changer un paramètre toutes les secondes nous allons utiliser le programme executable time.tos qui affichera l'heure.

Le lien /time.tos lancera ce programme qui affichera l'heure et la date sur sa sortie standard (printf), dans notre cas au format HTML, qui sera transmise directement au client.


Pour connaitre l'heure


> Execution d'un script simple:

avec le shell defini dans l'environnement 'SHELL=' :

Parmi les programmes executables intéréssants, on peut remarquer qu'un interpreteur de commande, appelé SHELL ou SHELLCMD permet l'execution de fichiers batch facilement programmable et qui avec une bonne documentation permet un grand nombre de possibilitées.

Un exemple que l'on recontre souvent dans ce type de programmation, c'est l'affichage de l'environnement disponible.

On propose au client le lien /mupfel/env.bat, le serveur connaissant '.bat' comme une application d'un interpreteur de commande va rechercher l'environnement 'SHELL' ou bien utiliser le programme défini dans son SHTTPD.CFG

Il execute le shell avec le fichier *.BAT comme paramètre et donner sa sortie au client.


Voir l'environnement


> Execution avec paramètres, méthode GET :
Le client lance ici le script script.bat. Pour transmettre des paramètres au programme, on place derrière l'URL une ligne de commande commençant par le caratère '?' et dont tous les espaces sont remplaçés par le caractère '+'.

Dans le cas de l'URL '/mupfel/script?Henri+Dupond' le SHELL recevra l'environnement 'QUERY_STRING=Henri Dupond' et 'QUERY_LENGTH=12' pour le nombre de caractères.

Pour essayer un script avec paramŠtres ( m‚thode GET ).

Le ligne de commande est limitée à 127 caractères.

> Execution d'un programme avec paramètres, méthode POST:
Mais parfois, il faut que ce soit l'utilisateur lui meme qui donne les informations dont l'executable a besoin.On utilise alors la méthode 'PUT' qui donnera au programme la ligne de commande du client sur son entrée standard.C'est généralement le cas des formulaires a remplir.

Entrez votre nom :
Entrez votre mot de passe:
puis


> Image dynamique :
L'exemple classique du nombre de consultation d'une page est un programme. Une fois lancé, compteur.tos envoi sur sa sortie standard une image au format x-xbitmap.

Nombre de passage :


Remarques:


Le passage de paramètres par la méthode GET est limitée à 127 caractères. De plus les données sont parfaitement visible dans la fenêtre de CAB lorsque l'on passe la souris sur l'URL.
Pour ces raisons, on préférera la méthode POST pour transférer des informations confidentielles ou de taille supérieure à 127 caractères.


Table des matiŠres Installation Historique