Serveurs HTTP et scripts CGI

généralités - logiciels - formulaires - scripts simples - bases de données - bibliographie

Généralités

Le protocole HTTP (HyperText Transfer Protocol)

C'est le protocole d'échange de documents sur le Web : documents html, texte, images, applets, css etc.

HTTP s'appuie sur TCP/IP

Qui est client et qui est serveur ?

La machine sur laquelle se trouvent les pages HTML est serveur, la machine qui consulte est client ; un client envoie une requète, le serveur y répond.

Le navigateur (UA = User Agent) est un serveur d'affichage pour le document HTML (comme un serveur X-Window pour une application X sous Unix)

CGI (Common Gateway Interface)

Si la page HTML comporte un formulaire, la réception de ce formulaire par le "demon" serveur HTTPD provoque l'exécution d'un "script cgi" (programme généralement situé dans ./cgi-bin/

Ce programme effectue "un certain travail" et compose dynamiquement une page HTML (écriture sur sa sortie standard) qui sera envoyée au client par le serveur HTTP

Le script CGI peut lui-même faire appel à un serveur de bases de données : il lui envoie des requètes et compose sa page en fonction du résultat

Il existe deux méthodes pour passer des paramètres au programme CGI :

Les scripts CGI peuvent s'écrire en n'importe quel langage, en particulier on pourra avoir :

Logiciels

On n'indiquera ici que de logiciels libres (licence GPL ou approchant : gratuits, sources disponibles, modifiables)

Serveur HTTP

Le serveur le plus utilisé sur Internet (plus de 50 % des serveurs) est Apache http://www.apache.org

Il existe en versions Unix et Windows

Langages

Sous Linux bash, Perl et C sont installés d'origine.

Sous Dos/Windows on peut installer les outils de développement "djgpp" qui fournissent le même environnement que sous Unix. Voir chez Simtelnet (ftp://ftp.simtel.net répertoire pub/simtelnet/gnu*, site mirroir chez Grolier (ftp.grolier.fr)

Un équivalent libre du TP6/TP7/Delphi exite pour Linux/DOS/Win32 : FPC = FreePascalCompiler (www.freepascal.org)

Bases de données

On peut recommander MySQL, gratuit avec sources (mais pas vraiment libre, voir la licence) sous Linux, le même existant sous Windows32 mais payant sauf pour le domaine éducatif (télécharger la version d'essai et s'enregistrer comme établissement d'enseignement).

http://www.mysql.org

Formulaires

Vu du côté utilisateur, le formulaire sert à préparer la requète qui sera envoyée au serveur.

Les données seront envoyées sous la forme d'une liste de couples variable/valeur de la forme

	 variable=valeur
ou	 
	 variable1=valeur1&variable2=valeur2&variable3=valeur3	 

Les espaces, caractères accentués et autres caractères spéciaux sont rendus par un code de la forme %nn...

cf exemple scripts CGI en Pascal

Scripts simples

cf exemple scripts CGI en Pascal

Les scripts à la Turbo-Pascal posent plusieurs problèmes :

On préférera généralement des scripts en shell script, en C ou en Perl, mais ceci pose des problèmes sous DOS/Windows : difficulté pour lancer un script shell ou Perl, le système ne sachant que faire d'un script /cgi-bin/truc.sh ou /cgi-bin/machin.pl, même si les scripts en question contiennent en première ligne

    #!/bin/sh
ou
    #!/usr/bin/perl

alors que cette syntaxe est parfaitement comprise sous d'autres OS.

Bases de données : MySQL

Pourquoi utiliser un système comme MySQL ?

Les avantages :

Les inconvénients

Exemples d'utilisations possibles

Bibliographie

Les RFC et autres documentations

L'on pensera à récupérer l'index des RFC...

ftp://ftp.lpi6.fr/pub/rfc

ftp://ftp.lpi.ac-poitiers.fr/pub/rfc

ftp://ftp.lpi6.fr/pub/linux/french/docs

http://www.eisti.fr/ (RFC en français)

Le W3C

http://www.w3c.org

Tout est déjà sur votre machine

Voir les documentations des logiciels Apache, MySQL...

ls /usr/doc/HOWTO

Les listes et les newsgroups

news://news.univ-angers.fr/fr.comp.*

news://news.pcl.fr/poitiers.informatique

news://news.lpi.ac-poitiers.fr/*

Ouvrages imprimés

Toute la collection de chez O'Reilly (http://www.editions-oreilly.fr) en particulier les ouvrages sur Perl que l'on peut aussi acheter par correspondance avec sa distribution Linux chez Ikarios (http://www.ikarios.com)

Chez O'Reilly International : MySQL et mQSL

Retour à la page d'accueil

Dernière mise à jour le mardi 1er février 2000