Introduction aux serveurs Web

Preview:

DESCRIPTION

Introduction aux serveurs Web. Serveur web ou httpd. Serveur web ou serveur httpd  (http daemon) : logiciel qui sert des pages Web aux clients - PowerPoint PPT Presentation

Citation preview

Introduction aux serveurs Introduction aux serveurs WebWeb

Serveur web ou httpdServeur web ou httpd

• Serveur web ou serveur httpd  (http daemon) : logiciel qui sert des pages Web aux clients

• Capable d'interpréter les requêtes http arrivant sur le port associé au protocole HTTP (port 80 par défaut) et de fournir une réponse avec ce même protocole

• Par extension, on appelle souvent la machine physique sur laquelle tourne le logiciel un « serveur web »

Pages statiques, pages Pages statiques, pages dynamiquesdynamiques

• Les pages renvoyées par les serveurs Web sont soit statiques soit dynamiques

• Pages statiques – ne comportent que du HTML, du

javaScript et des applets java– extension .htm ou .html – stockées telles quelles sur les

disques durs des serveurs

Pages statiques, pages Pages statiques, pages dynamiquesdynamiques

• Pages dynamiques – créées (entièrement ou partiellement)

au moment où elles sont demandées au serveur Web

– répondent à une demande spécifique transmise par un formulaire

– doivent récupérer les informations fournies par le client dans les éléments du formulaire

Eléments de formulaireEléments de formulaire• Page formulaire.html• Présente tous les types d’éléments visibles

dans une page HTML– éléments de type <input>– élément de type <select>– élément de type <textarea>

• <form> a deux attributs :– method : get ou post– action : programme à exécuter sur le serveur

Technologies actuellesTechnologies actuelles

• Scripts CGI :– norme, pas langage– génèrent des pages complètes– première technologie utilisée pour

générer des pages dynamiques, mais encore très employée (grand stock de scripts CGI existants)

– programmes complets qui peuvent être écrits en différents langages

Technologies actuellesTechnologies actuelles

• Pages ASP, JSP, PHP :– écrites partiellement en HTML (la structure

globale de la page est en HTML)– comportent des scripts « serveurs » (par

opposition aux scripts javaScript dits scripts « clients »)

• exécutés par le serveur Web au moment où la page est demandée

• interrogent généralement une base de données• résultats insérés dans la page à la place des scripts.

– La page résultante apparaît au client comme une page HTML statique (ce qu’elle n’est pas)

Choix de la technologieChoix de la technologie

• Le choix de la technologie serveur dépend :– du système d’exploitation de la

machine serveur– du type de bases de données à

interroger – de la charge que doit supporter le

serveur

Récupération des données Récupération des données d’un formulaired’un formulaire

Les données d’un formulaire sont transmises à 3variables d’environnement du serveur HTTP : 

REQUEST_METHOD :POST ou GET

CONTENT_LENGTH :Taille en octets du corps de la requête

QUERY_STRING :Données transmises après le ? dans l'URL

Méthode getMéthode get

<form method="get" action="nom_programme">Nom : <input type="text" name="nom">Pr&eacute;nom : <input type="text" name="prenom">Age : <input type="text" name="age"><input type="submit" value="OK">

</form>

Méthode getMéthode get

• Au moment où l’utilisateur clique sur le bouton submit, la ligne de l’URL affiche par exemple :http://site/nom_programme?nom=dupont&prenom=antoine&age=25

• Tout ce qui suit le ? correspond aux différents couples variable=valeur provenant du formulaire

Méthode getMéthode get

• Lorsque le formulaire de la page HTML comporte l’instruction method="get" (ou ne comporte pas d’attribut method), alors :– REQUEST_METHOD prend la valeur get (valeur

par défaut)– QUERY_STRING prend comme valeur tout ce qui

suit le ? dans l’URL

• QUERY_STRING prend donc ici la valeur nom=dupont&prenom=antoine&age=25

• Les espaces éventuels sont remplacés par des +

Méthode postMéthode post

<form method="post" action="nom_programme">Nom : <input type="text" name="nom">Pr&eacute;nom : <input type="text" name="prenom">Age : <input type="text" name="age"><input type="submit" value="OK">

</form>

Méthode postMéthode post• Au moment où l’utilisateur clique sur le

bouton submit, la ligne de l’URL affiche seulement :

http://site/nom_programme• Lorsque le formulaire comporte l’instruction

method="post" : – REQUEST_METHOD prend la valeur post – le programme reçoit, sur son entrée standard,

d’abord la demande, ensuite le codage des paramètres

• La variable CONTENT_LENGTH permet de déterminer la longueur des données à lire

Méthode postMéthode post

• CONTENT-LENGTH aura donc ici la valeur 32 (nombre de caractères de la chaîne : nom=dupont&prenom=antoine&age=25)

• Puis le serveur recevra sur son entrée standard la chaîne :nom=dupont&prenom=antoine&age=25

get ou post ?get ou post ?

• Chaque technologie (CGI, ASP, JSP, PHP) dispose de fonctions permettant de décoder la chaîne de requête, donc de récupérer la valeur de chaque variable

• On emploie post si les valeurs des variables ne doivent pas être visibles (mot de passe) ou si les données sont longues (textarea). On emploie get dans la plupart des autres cas.

Principaux serveurs WebPrincipaux serveurs Web

• Apache (Unix / Linux)(67 % environ de parts de marché)

• MIIS (Windows) Microsoft Internet Information Server (21 % environ de parts de marché)

• Java Web Server (versions pour Unix/ Linux / Windows) et Jakarta-Tomcat (qui cohabite avec Apache)

Situation comparative jusqu’en Situation comparative jusqu’en 2004 (Journal du Net)2004 (Journal du Net)

ApacheApache

• Pages HTML, scripts CGI (langages divers), pages PHP – opérationnel à grande échelle, open source – TRES stable– demande peu de ressources matérielles– mais complexe à paramétrer et à administrer

• easyPHP (Apache pour Windows) – outil de développement open source – serveur mySQL intégré

MIISMIIS

• Microsoft Internet Information Server• Pages HTML, pages ASP (Visual Basic

ou JScript)– opérationnel à grande échelle– facile à installer et à administrer– performances moyennes– demande de grosses ressources

matérielles et logicielles

Java Web ServerJava Web Server

• Pages HTML, pages JSP (langage java) – propriété de SUN– serveur complet plutôt destiné aux

entreprises

• Jakarta-Tomcat (Unix/Linux/ Windows) – outil de développement open source– souvent associé à d’autres logiciels serveurs

pour en étendre les fonctionnalités

Technologie 1 Technologie 1 Scripts CGIScripts CGI

IntroductionIntroduction

• La programmation CGI (Common Gateway Interface) permet de faire construire dynamiquement des documents par un serveur HTTP

• Elle est la plupart du temps associée au serveur Apache, sous Unix et Linux

• Ce n’est PAS un langage, mais une norme permettant l’écriture de scripts CGI exécutables par Apache et générant des pages Web complètes

IntroductionIntroduction• Un script CGI peut être écrit dans de

nombreux langages • Mais le langage choisi :

– doit pouvoir être exécuté sur une ligne de commande sans faire appel à un autre programme

– doit avoir directement accès aux variables d'environnement du serveur

– doit permettre d'écrire sur la sortie standard

IntroductionIntroduction

• On peut utiliser des langages compilés ou interprétés

• Sous UNIX : PERL, C, C++, Fortran, Pascal, TCL, sh, csh, ksh ou n'importe quel autre shell

• Sous Windows : C, C++, Visual Basic• Sous MAC-OS, AppleScript (langage

spécifique dédié)

IntroductionIntroduction

• S’ils sont écrits dans un langage interprété (PERL, TCL, shell Unix, Applescript…)– le code doit préciser l’emplacement de

l’interpréteur– il faut leur donner les droits d'exécution

Résultat d’un script CGIRésultat d’un script CGI

• Un script CGI peut renvoyer une image, un document HTML, un clip audio, des références vers d’autres documents, etc.

• Le navigateur client doit savoir quel type de document lui est renvoyé afin de pouvoir le traiter correctement

• Le résultat de l’exécution d’un script CGI doit alors comporter un en-tête (header) qui précise la nature du document renvoyé

Résultat d’un script CGIRésultat d’un script CGIContent-type:text/html l’en-tête

ligne blanche de séparation obligatoire<html> le corps

<head> de la page HTML

<title>resultat du script CGI</title></head> <body> générée par

... le script CGI </body>

</html>

Types MIMETypes MIME

• La syntaxe utilisée pour indiquer le type de données (type MIME) est :Content-type:type/subtype

• Exemples :– text/html– image/jpeg– application/pdf– application/rtf

Récupération des couples Récupération des couples paramètres-valeursparamètres-valeurs

• On peut décoder les couples paramètres-valeurs sans utiliser de module spécifique en analysant les 3 variables d’environnement

• Mais le module CGI.pm, souvent installé avec Apache, automatise le décodage des données

• Voir fichier formulaire et reponse.cgi

Technologie 2 Technologie 2 pages ASPpages ASP

IntroductionIntroduction

• Technologie liée au serveur MIIS de Microsoft (25% des serveurs Web) donc uniquement sous Windows

• Des scripts (écrits en Visual Basic ou en JScript) sont insérés dans les pages ASP et exécutés au moment de la demande

• Les résultats de l’exécution des scripts se mettent à la place des scripts

Récupération des couples Récupération des couples paramètres-valeursparamètres-valeurs

• Dans formulaire1.html, on écrit :<form action="reponse.asp" method="get">

• Réponse générée par la page reponse.asp

• Si method="post" au lieu de method="get", on remplace<%=Request.QueryString("nom")%> par :<%=Request.Form("nom")%>

• Serveur MIIS installé à Assas

Technologie 3 Technologie 3 pages JSPpages JSP

IntroductionIntroduction

• Technologie liée au serveur Java Web Server de Sun (5% des serveurs) mais aussi aux serveurs JSWDK et Tomcat (ce dernier peut être couplé avec Apache)

• Des scripts (en langage java) sont insérés dans les pages JSP et exécutés au moment de la demande

• Le résultat d’un script remplace le script dans la page JSP

Récupération des couples Récupération des couples paramètres-valeursparamètres-valeurs

• Dans formulaire2.html, on écrit :<form action="reponse.jsp" method="get"/"post">

• Réponse générée par la page reponse.jsp, que la method soit get ou post

• Serveur JSWDK installé à Charcot• Serveur Tomcat installé à Assas

Technologie 4 Technologie 4 pages PHPpages PHP

IntroductionIntroduction

• Technologie la plus récente, destinée à remplacer à terme les scripts CGI sur les serveurs Apache

• Incontournable• Des scripts (en langage PHP) sont

insérés dans les pages PHP et exécutés au moment de la demande

• Le résultat d’un script remplace le script dans la page PHP

Récupération des couples Récupération des couples paramètres-valeursparamètres-valeurs

• Dans formulaire3.html, on écrit :<form action="reponse.php" method="get">

• Réponse générée par la page reponse.php

• Si la method est post, on écrit :<?php echo $_POST['nom'] au lieu de<?php echo $_GET['nom']

• Pages normalement destinées au serveur Apache

Serveurs de développement PHPServeurs de développement PHP

• Sous Windows, serveur easyPHP, couplage d’un serveur Apache et d’un serveur de bases de données mySQL

• Serveur de développement, pas serveur opérationnel à grande échelle

• Serveur easyPHP installé à Charcot• Serveur easyPHP installé à Assas

Recommended