De la puce au ouaibeCours d’informatiqueLI105Université Pierre & Marie CURIEFévrier 2008WEBClient/serveurFonctionnement statique :I Serveur1. attend une demande de fichier2. lit le fichier3. envoie le fichierI Client (navigateur)1. envoie une demande de fichier2. attend le fichier3. affiche le fichier, en tenant compte des indicationsde format HTMLWEB+Client+/Serveur+Page dynamique) calcul) Programme/scriptDes deux côtés :I Le client : actions locales, affichageI interprète lui même du code (javascript)I demande au système l’exécution du code (applet)I Le serveur : calcul de page, contenuI interprète du code (php, perl, python, etc.)I demande au système l’exécution du (CGI)I crée et fait exécuter un servlet spécifique (JSP)Pages dynamiquesCGICommon Gateway InterfaceActivationI requête/URI spécifique : /cgi-bin/hello.cgiI emplacement sp sur le serveur :/Library/WebServer/CGI-Executables/dépend de la configuration du serveurI programme entrées/sorties spécifiques :I sortie : stdout, format httpI entrée : variable d’environnement ou stdin, formatURI, selon la méthode GET ou POSTCGIScriptUn exemple minimal :un shell script qui envoie le texte brut HELLOFichier : hello1.cgi (extention usuelle)#!/bin/shecho Content-type: text/plainechoecho HELLOScript CGIInstallationDroits d’exécution pour tous (attention danger)chmod a+x hello1.cgiInstallation dans le répertoire prévu par le serveursudo cp hello1.cgi \/Library/WebServer/CGI-Executables ...
Fonctionnement statique : I Serveur 1. attend une demande de fichier 2. lit le fichier 3. envoie le fichier Client (navigateur) 1. envoie une demande de fichier 2. attend le fichier 3. affiche le fichier, en tenant compte de format HTML
I
des
indications
WEB+ Client+/Serveur+
Page dynamique ⇒ calcul ⇒ Programme/script Des deux côtés : I Le client : actions locales, affichage I interprète lui même du code (javascript) I demande au système l’exécution du code (applet) Le serveur : calcul de page, contenu I interprète du code (php, perl, python, etc.) I demande au système l’exécution du (CGI) I crée et fait exécuter un servlet spécifique (JSP)
I
Pages dynamiques CGI
Common Gateway Interface Activation I requête/URI spécifique : /cgi-bin/hello.cgi I emplacement spécifique sur le serveur : /Library/WebServer/CGI-Executables/ dépend de la configuration du serveur programme entrées/sorties spécifiques :
I
I sortie : stdout, format http I entrée : variable d’environnement ou stdin, format URI, selon la méthode GET ou POST
CGI Script
Un exemple minimal :
un shell script qui envoie le texte brut
Fichier : hello1.cgi (extention usuelle)
#!/bin/sh
echo Content-type: text/plain echo echo HELLO
HELLO
Script CGI Installation
Droits d’exécution pour tous (attention danger)
chmod a+x hello1.cgi
Installation dans le répertoire prévu par le serveur
Données transmises par une requête GET I transmises dans l’URL /cgi-bin/hello4.gci ?name=FALBALLA I réceptionnées dans des variables d’ i onnement env r QUERY STRING _
Bibliothèque WEB : I Entrées I préparation des données : ≈ liste d’association (nom, valeur) I une fonction d’accés simplifiée public static String getValParam(String nomParam) I Sorties I des chaînes préformattées headerMin() htmlTop(String title) hmltBottom()