introduction aux serveurs web

40
Introduction aux Introduction aux serveurs Web serveurs Web

Upload: gent

Post on 15-Jan-2016

63 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: Introduction aux serveurs Web

Introduction aux serveurs Introduction aux serveurs WebWeb

Page 2: Introduction aux serveurs Web

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 »

Page 3: Introduction aux serveurs 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

Page 4: Introduction aux serveurs Web

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

Page 5: Introduction aux serveurs Web

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

Page 6: Introduction aux serveurs Web

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

Page 7: Introduction aux serveurs Web

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)

Page 8: Introduction aux serveurs Web

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

Page 9: Introduction aux serveurs Web

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

Page 10: Introduction aux serveurs Web

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>

Page 11: Introduction aux serveurs Web

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

Page 12: Introduction aux serveurs Web

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 +

Page 13: Introduction aux serveurs Web

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>

Page 14: Introduction aux serveurs Web

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

Page 15: Introduction aux serveurs Web

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

Page 16: Introduction aux serveurs Web

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.

Page 17: Introduction aux serveurs Web

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)

Page 18: Introduction aux serveurs Web

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

Page 19: Introduction aux serveurs Web

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é

Page 20: Introduction aux serveurs Web

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

Page 21: Introduction aux serveurs Web

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

Page 22: Introduction aux serveurs Web

Technologie 1 Technologie 1 Scripts CGIScripts CGI

Page 23: Introduction aux serveurs Web

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

Page 24: Introduction aux serveurs Web

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

Page 25: Introduction aux serveurs Web

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é)

Page 26: Introduction aux serveurs Web

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

Page 27: Introduction aux serveurs Web

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é

Page 28: Introduction aux serveurs Web

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>

Page 29: Introduction aux serveurs Web

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

Page 30: Introduction aux serveurs Web

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

Page 31: Introduction aux serveurs Web

Technologie 2 Technologie 2 pages ASPpages ASP

Page 32: Introduction aux serveurs Web

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

Page 33: Introduction aux serveurs Web

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

Page 34: Introduction aux serveurs Web

Technologie 3 Technologie 3 pages JSPpages JSP

Page 35: Introduction aux serveurs Web

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

Page 36: Introduction aux serveurs Web

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

Page 37: Introduction aux serveurs Web

Technologie 4 Technologie 4 pages PHPpages PHP

Page 38: Introduction aux serveurs Web

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

Page 39: Introduction aux serveurs Web

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

Page 40: Introduction aux serveurs Web

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