La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les serveurs HTTP IIS APACHE. Historique La version 1.0 est disponible début décembre 1995. Elle fut crée par une équipe de Webmaster indépendant. Cette.

Présentations similaires


Présentation au sujet: "Les serveurs HTTP IIS APACHE. Historique La version 1.0 est disponible début décembre 1995. Elle fut crée par une équipe de Webmaster indépendant. Cette."— Transcription de la présentation:

1 Les serveurs HTTP IIS APACHE

2

3 Historique La version 1.0 est disponible début décembre Elle fut crée par une équipe de Webmaster indépendant. Cette équipe fondée par les développeurs du NCAS (National Center for Supercomputing Applications) était à lorigine du plus populaire serveur web de lépoque : Urbain-Champain. Dès sa sortie, APACHE fut immédiatement porté sur la pluspart des environnements. APACHE est, aujourdhui, un serveur fiable et robuste utilisé par de grandes entreprises comme IBM MICROSOFT qui utilise APACHE comme serveur Internet. Voir

4 Configuration 1- arborescence cgi-bin : par défaut contenant les cgi conf : Contient les fichiers de configuration du serveur log : Contient les log users : Contient les sites des utilisateurs htdocs : Répertoire par défaut contenant les pages publiées. modules : Contient les modules optionnels pouvant complèter le serveur. icons: Répertoires des Icones

5 Configuration Les logs access.log : Contient les informations concernant les accès au serveur. error.log : Contient les erreurs produites par le serveur. Les fichiers de configuration Au nombre de trois : access.conf : Droits d'accès aux répertoires du serveur srm.conf : Emplacement des principaux fichiers http.conf : Directives de fonctionnement du serveur lui-même

6 Configuration access.conf Sur un répertoire Options None|All|Includes|ExecCGI order deny,allow deny from all allow from AllowOveride None Sur un URL Sur un Fichier Allowoveride : le fichier.htaccess prend le relais sauf si NONE AuthConfig : config pouvant être modifiée par.htaccess FileInfo : droit accès aux fichiers

7 Configuration srm.conf 1. Etiquette définissant lemplacement des principaux fichiers : DocumentRoot, UserDir, DirectoryIndex, AccessFileName, ScriptAlias Ex : DocumentRoot /Apache/htdocs 2. Permet de lier les types de fichiers à des icônes lorsque le mode FancyIndexing est sur on Ex : AddIcon /icons/binary.gif.bin.exe 3. Permet dassocier un entête à un type de fichier Ex : AddType text/html.shtml 4. Association des erreurs avec des textes appropriés Ex : #ErrorDocument 500 "Le serveur a commis une erreur #ErrorDocument 404 /missing.html

8 Configuration Httpd.conf port : port TCP/IP par défaut 80 user : utilisateur sous lequel les CGI seront exécutés ServerAdmin : adresse du gestionnaire de site ServerRoot : répertoire de larborescence du serveur ServerName : Nom du server MaxClients : Nombre maximal de clients ErrorLog : Fichier log des erreurs. relatif à ServerRoot. CustomLog : Fichier des accès. Relatif à ServerRoot. TimeOut : Durée maximale avant attente trop longue

9 Authentification access.conf AuthUserFile c:\etc\passwd AuthName Libellé AuthType Basic require valid-user ATTENTION : Charger le module spécifique dans httpd.conf LoadModule anon_auth_module modules/ApacheModuleAuthAnon.dll La création du fichier password doit être effectuée par loutil htpasswd

10 Internet Information Server

11 IIS : Définition Logiciel de Microsoft Pour Windows NT à partir de NT 4.0 Pour Windows NT / XP : IIS 5)

12 IIS : Définition Ensemble de 3 services sous Windows NT. Services utilisant le réseau internet Services de publication dinformation «publishing services» Permet de rendre accessibles (mettre en ligne) des sites FTP, Web et NNTP.

13 IIS : Les services FTPHTTP SMTP... IIS Service

14 IIS : Définition Service WWW BROWSER WEB SERVEUR NT AVEC IIS FILTRE ISAPI PROGRAMME CGI DLL ISAPI (dont ASP.DLL) ASP SGBD Pages HTML

15 Configurer IIS Gérer laccès aux sites Onglet «Advanced» Autoriser certaines adresses IP ou domaines à se connecter Autoriser toutes les adresses IP ou domaines à se connecter sauf certains Limiter lutilisation du réseau. Cumul de lutilisation de tous les services

16 Configurer IIS Le compte du logon anonyme Onglet «Service» Compte créé à linstallation dIIS, avec le nom «IUSR_NomOrdinateur» Compte utilisé par NT pour les personnes qui se connectent en anonyme à un des services quand on autorise ce type daccès

17 Configurer IIS Propriétés des répertoires Permettent de limiter les possibilités du client sur ces répertoires Propriétés «Read» et «Write» pour FTP Propriétés «Read» et «Execute» pour WWW

18 Configurer IIS Les serveurs virtuels Onglet «Directory» Permettent dutiliser une autre adresse IP sur le même serveur Web On a donc plusieurs serveurs Web sur la même machine

19 Les technologies Serveur SSI / CGI / ISAPI / JAVA SERVLET / JSP / PHP / ASP / DOT NET

20 SSI

21 Les SSI (Server Side Include) Si elles sont supportées par le serveur http, elle seront compatibles avec tous les navigateurs puisque le code des SSI sera transformé en HTML. Le format d'un appel SSI est le suivant : --> Les balises reconnues sont break, config, echo, , exec, if, include, fsize, flastmod, label, goto et odbc. Les commandes break : La balise break permet de terminer le document HTML config : Utilisée pour positionner les options de sortie HTML.

22 SSI echo : Permet d'insérer certaines données dans une page HTML. Utilisez la variable var est la date du jour Afficher des variables d'environnement : DATE_LOCAL la date et l'heure locales du serveur HTTP DOCUMENT_NAME le nom complet du document REMOTE_ADDR l'adresse IP du client distant REMOTE_HOST le nom de la station cliente REMOTE_USER le nom du client distant

23 SSI exec : La balise exec permet d'exécuter une commande quelconque par le système d'exploitation du serveur. goto : La balise goto permet de sauter vers une étiquette #label sans exécuter le code entre l'instruction courante et l'étiquette. blablabla non renvoyé if : La balise if permet d'effectuer une exécution sous certaines conditions, par exemple, d'afficher une portion de texte HTML si une condition est remplie. La syntaxe générale de la balise est la suivante : include : Permet d'inclure le contenu d'un fichier dans la page HTML

24 SSI Exemple

25 CGI

26 Objectifs du chapitre Présentation des CGI Programme CGI Fonctionnement Ecriture dune application CGI Utilisation avancée de CGI

27 Possibilités d'extension API filtres ISAPI API applications ISAPI Windows NT Server, Internet Information Server CGI Client Web PerlPerl ApplicationsimpleApplicationsimple applicationsISAPIapplicationsISAPI Internet Database Connector (IDC) scripts Perl FiltresISAPI ActiveServerPages(ASP)ActiveServerPages(ASP)

28 Présentation de CGI «Common Gateway interface» Protocole de communication Permet à un browser Web et à un programme situé sur un serveur Web de dialoguer

29 Le support des CGI sur IIS Support total des applications CGI Basé sur STDIN/STDOUT Généralement en Perl Accès à toutes les variables HTTP Les applications CGI s'exécutent en dehors du processus Les applications CGI peuvent s'exécuter dans le contexte du client ou du serveur

30 Les Variables d'environnement CGI En-têtes HTTP AUTH_TYPE CONTENT_LENGTH GATEWAY_INTERFACE LOGON_USER PATH_INFO PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST REMOTE_USER REQUEST_METHOD SCRIPT_NAME SERVER_NAME SERVER_PORT SERVER_PORT_SECURE SERVER_PROTOCOL SERVER_SOFTWARE URL

31 Présentation de CGI f ClientServeur Web ClientServeur Web Programme Requête «classique» Requête «CGI»

32 Programme CGI Figures imposées Respecter le protocole CGI en entrée : –Lire les paramètres dentrée depuis «stdin» (si la méthode utilisée par le browser est «POST») –Lire les paramètres dentrée depuis une variable denvironnement (si la méthode utilisée par le browser est «GET»)

33 Programme CGI Figures imposées Respecter le protocole CGI en sortie : –Préciser le type de données retournées ( en précisant la valeur de «Content-type») –Retourner le résultat par «stdout»

34 Fonctionnement : Envoi dinformations à partir du browser Envoi à partir dun formulaire Exemple de code HTML : =>Un champ de saisie pour entrer la requête et un bouton «submit» pour lexécuter

35 Fonctionnement : Envois dinformations à partir du browser GET Chaîne de requête à la suite de GET Le programme lit depuis une variable denvironnement Chaîne limitée à 1024 octets POST Chaîne de requête envoyée séparément Le programme lit ses arguments depuis stdin Pas de limite Méthodes de passage de paramètres

36 Fonctionnement : Renvoi des informations au browser Le programme utilise stdout pour renvoyer au serveur le résultat Il peut renvoyer une page HTML, une image, ou dautres types de données en modifiant le Content-type du header HTTP

37 Ecriture dune application CGI Exemple : Lapplication la plus simple void main() { printf("Content-type: text/html\n\n") ; printf(" \n") ; printf(" Hello World \n") ; printf(" \n") ; printf(" Hello, world. \n"); printf(« \n«); }

38 ISAPI

39 Objectifs du chapitre Présentation dISAPI Différences avec CGI Les filtres Les extensions

40 Présentation dISAPI Internet Server Application Programming Interface Technologie de Microsoft et de Process Software, apparue en 1995 Permet de doter les serveurs Web dextensions logicielles

41 Présentation dISAPI Ces applications peuvent: Fonctionner avec Microsoft Internet Information Server Etre créées avec Visual C++ (à partir de la version 4.1)

42 Présentation dISAPI Ces applications prennent la forme de : Filtres : applications qui «filtrent» toutes les données circulant entre le browser et le serveur Web Extensions : comparables à des applications CGI, sont exécutées par le serveur suite à des requêtes du browser

43 Présentation dISAPI BROWSER WEB SERVICE WWW Filtre ISAPI ClientServeur FILTRE BROWSER WEB SERVICE WWW EXTENSION Application ISAPI

44 Introduction à la Programmation ISAPI Les filtres ISAPI –Contrôler l'activité –Modifier le comportement –Modifier les Entrées/Sorties –Participer aux opérations intermédiaires Les extensions ISAPI –Etendent les fonctionnalités –Hautes performances –Exécution In-process –Plug-ins –Activation par Script –Maintain state

45 Les filtres Description Dll qui se placent entre le browser et le service Web Toutes les données qui circulent, à partir ou vers le browser, peuvent être lues et modifiées

46 Les filtres Description BROWSER WEB SERVICE WWW Filtre ClientServeur

47 Les filtres ISAPI Pourquoi: Opérations particulières, superviser/modifier les entrées/sorties, applicables à toutes les requêtes Architecture: Appelle les filtres pour des opérations immédiates –Plusieurs filtres peuvent être actifs simultanément –Plusieurs threads peuvent faire appel aux filtres

48 Le support d'un Filtre Plusieurs filtres peuvent être enregistrés et traiter chaque requête Chaque filtre doit indiquer à quel type de notification il s'intéresse Quand un filtre est appelé, il peut: –Traiter entièrement la requête –Traiter la requête et la passer au filtre suivant du type de notification courante –Assumer tout le traitement de la notification courante

49 Différences entre ISAPI et CGI ISAPI Des.dll Des filtres et des applications Encore très peu répandu CGI Des.exe Seulement des applications Standard mondial

50 Différences entre ISAPI et CGI ISAPI Souvent utilisé avec un langage compilé comme C ou C++ Outil daide à la réalisation en C++, pour les handlers et les entrées CGI Souvent utilisé avec un langage de script (PERL) Rien, le développeur doit décrypter la chaîne dentrée tout seul comme un grand

51 Différences entre ISAPI et CGI ISAPI Une dll regroupe un ensemble de fonctions Pour n utilisateurs, une dll est en mémoire A chaque utilisateur, un thread est lancé CGI Un exe contient une seule fonction Pour n utilisateurs, n exe sont en mémoire A chaque utilisateur, un processus est lancé

52 Différences entre ISAPI et CGI Dll ISAPI Service Web 3 utilisateurs Application CGI threads

53 JAVA

54 JAVA - Les SERVLET Le JSDK (Java Servlet Development Kit) fournit un modèle de classes pour l'écriture des Servlet. Il est disponible sur : Les Servlets sont des modules JAVA exécutés côté serveur pour générer des pages HTML dynamiques. Les Servlets sont en fait des petits serveurs spécialisés. Les servlets s'exécutent dans un moteur de servlet (parfois appelé conteneur de servlet ) utilisé pour établir le lien entre la servlet et le serveur web

55 JAVA - Les SERVLET Le Conteneur Servlet se charge du cycle de vie d'une Servlet. Il crée un Instance, appelle la méthode init () de l'instance, puis il appelle la méthode service () et enfin avant de la détruire appelle la méthode destroy (). Une Servlet est crée en étendant soit la classe GenericServlet, soit la classe HttpServlet. GenericServlet est déjà une extension de HttpServlet. Elle propose des fonctionnalités spécifique à HTTP tout en simplifiant la création d'une Servlet. Une Servlet est chargée une seule fois et peut traiter plusieurs requêtes HTTP.

56 JAVA - La structure d'une SERVLET Chaque requête provoque la création d'un Thread par le moteur qui éxécute la méthode Service de la Servlet. S'il s'agit une méthode GET (resp. POST), la méthode service transmet la requête à la méthode doGet (resp. doPost). Pour établir la réponse HTTP afin d'envoyer une réponse au client, l'objet HttpServletReponse de la méthode doGet (resp. doPost), permet : d' envoyer le type MIME par la méthode setContentType d'extraire l'objet PrintWriter grâce la méthode getWriter () qui va permettre de générer le contenu du flot de sortie.

57 JAVA - Exemple d'une SERVLET import javax.servlet.*; import javax.servlet.http; import java.io.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { res.setContentType("text/html"); PrintWriter out = res.getWriter (); out.println(" "); out.close (); } ServletdoGetType MIMEFlot de sortie

58 LES JSP JSP (Java Server Page) Les pages web JSP sont une technologie développée par Sun basée sur Java qui simplifie le processus de développement de sites web dynamiques Lorsque la page est demandée par un utilisateur en HTTP, alors le serveur web HTTP va transmettre sa requête à un moteur de JSP qui va interpréter le page, compiler le code et générer la réponse.

59 LES JSP - Exemple Hello, !

60 JSP - Installation Les éléments nécessaires pour utiliser JSP sont : –un serveur HTTP (Apache, IIS…) –un logiciel implémentant le conteneur (ou moteur) de JSP est nécessaire (Tomcat, Netscape entreprise Server) –une Java Virtual Machine tel que JDK (Java Development Kit) qui contient une JVM, un compilateur...

61 JSP - Exécution Les JSP sont dérivées des servlets (les JSP sont transformées par le conteneur en Servlet), Elles sont donc compilées en une classe Java dérivant de la classe HttpServlet le serveur Web appelle le conteneur de JSP qui transforme la page JSP en code source Java et compile la classe afin de fournir un fichier compilé (d'extension.class). Le script JSP est donc devenu une Servlet.

62 JSP - Exécution

63 PHP

64 PHP - Introduction PHP, signifie " PHP: Hypertext Preprocessor " (Preprocesseur HyperTexte), est un langage de script HTML. La plupart de sa syntaxe est empruntée aux langages C, mais y ajoute plusieurs fonctionnalités uniques. Le but de ce langage est de permettre aux développeurs web de concevoir rapidement des sites, aux pages dynamiques PHP 3.0 est un logiciel libre : vous pouvez le modifier et/ou le modifier sous licence GNU General Public License, telle que publiée par Free Software Foundation; Sources, documentation, executable : PHP supporte de nombreuses bases de données (et aussi ODBC).

65 PHP - Installation Le langage PHP a été conçu durant l'automne 1994 par Rasmus Lerdof. Multi-plateforme, il est disponible sur UNIX, LINUX, WINDOWS. Sur WINDOWS, PHP peut-être couplé avec : · Personal Web Server (Version la plus récente recommandée) · Internet Information Server 3 ou 4 · Apache 1.3.x · Omni HTTPd 2.0b1

66 PHP - Premier Exemple Exemple Instruction PHPBalises HTML PHP est un langage de script HTML, qui fonctionne coté serveur. Il possède les même fonctionnalités que les autres langages permettant d'écrire des scripts CGI, comme collecter des données, générer dynamiquement des pages web ou bien envoyer et recevoir des cookies.

67 PHP - Les variables & Les variables dynamiques Une variable classique est affecté avec l'instruction suivante: $a = "bonjour"; Il est pratique d'avoir des noms de variables qui sont variables. C'est-à-dire un nom de variable qui affecté et utilisé dynamiquement. Une variable dynamique prend la valeur d'une variable et l'utilise comme nom d'une autre variable. $$a = "le monde"; A ce niveau, deux variables ont été définies et stockées dans l'arbre des symboles $a avec comme valeur "bonjour" et $bonjour avec comme valeur "le monde".

68 PHP - Les types PHP est faiblement typé. Les type de base sont : ENTIER, les DOUBLE, les CHAINES : $str = <<< FIN Ceci est une chaine de caractères FIN; Pas de type DATE, ni de type BOOLEAN.

69 PHP - Assignation par référence Le & placé au début de la variable qui est assignée permet dassigner par référence. Seule les variables nommées peuvent être assignées par référence.

70 PHP - Les variables prédéfinies Variables Apache Elles sont spécifiques et créées par le serveur Apache. SERVER_NAME : nom du serveur hôte SERVER_PROTOCOL: Nom et révision du protocole de communication REQUEST_METHOD : Méthode de requête utilisée pour accéder à la page QUERY_STRING : La chaîne de requête, DOCUMENT_ROOT : La racine sous laquelle le script courant est exécuté Variables PHP Elles sont créées par PHP argv : Tableau des rguments passées au script. argc : Contient le nombre de paramètres de la ligne de commande passés au script PHP_SELF : Le nom du fichier du script en cour d'éxécution, HTTP_COOKIE_VARS : Un tableau associatif HTTP_GET_VARS : Un tableau associatif HTTP_POST_VARS : Un tableau associatif Variables denvironnement Ces variables sont importées depuis l'environnement sous lequel PHP fonctionne. EX : PATH

71 PHP - Les tableaux Deux types de tableaux : tables de hashage (tableaux associatifs) tableaux indexés (tableaux scalaires). Tableaux à une dimension : Ajout dun nouvel élément en fin de tableau Un ensemble de fonctions sont disponibles pour agir sur les tableaux : asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), uksort(), count().

72 PHP - Les tableaux parcours $value) { echo "Clé: $key; Valeur: $value \n"; } ?> Pointeur interne du tableau au début Retourne une paire clé /valeur Permet d assigner une liste de variables Extension de foreach

73 PHP - Les tableaux à plusieurs dimensions Pour chaque dimension du tableau, ajouter une nouvelle [clef] à la fin. La méthode la plus simple à comprendre est lutilisation de la fonction array(). $a = array( "pomme" => array( "couleur" => "rouge", "saveur" => "sucrée", "forme" => "rond"), "orange" => array( "couleur" => "orange", "saveur" => "amère", "forme" => "rond)); Mélanger les types Associatifs / Scalaires

74 PHP - Les opérateurs Les opérateurs arithmétiques : + - * / % Les opérateurs d'assignement : += -= *= /= %=.= Bitwise Operators :& | ^ ~ > Opérateurs de comparaison :== === != = === Egalité et meme type Opérateur de contrôle dignorer les warning Opérateur d'exécutions :` ` $d= ` DIR ` Incrementing/Decrementing Operators : Les opérateurs logiques : && and || or xor ! String Operators:.

75 PHP - Require & Include require() La commande require() se remplace elle même par le contenu du fichier spécifié, comme les préprocesseurs C le font avec la commande #include. include() La fonction include() inclue et évalue le fichier spécifié en argument. include() diffère de require() car le fichier inclus est ré-évaluée à chaque fois que la commande est exécutée. include_once () & require_once ()

76 PHP - Les structures de contrôles Les conditionnelles if else elseif switch case Les itératives while do while for foreach Exemple : $a = array (1, 2, 3, 17); foreach ($a as $v) { print "Valeur courante de \$a: $v.\n"; } Les ruptures break continue

77 PHP - Les fonctions En PHP, les fonctions peuvent être utilisées avant détre définies. PHP supporte un nombre variable darguments et lassignation des valeurs par défaut. func_num_args() : retourne le nombre darguments de la fonction func_get_arg(n) : retourne un argument func_get_args() : retourne un tableau contenant les arguments

78 PHP - Les fonctions passage des arguments par références Par défaut, les arguments sont passés à la fonction par valeur. PHP supporte le passage darguments par référence. Pour passer un argument par référence, utiliser & devant largument dans la déclaration de la fonction : function add_some_extra(&$string) { $string.=, et un peu plus.; } $str = Ceci est une chaîne; add_some_extra($str); echo $str; Pour passer une variable par référence à une fonction ponctuellement : function add_some_extra($string) { … } $str = Ceci est une chaîne; add_some_extra(&$str); echo $str;

79 PHP - Class & Objet Une classe est un ensemble de propriétés et de méthodes. Une classe est définie par la syntaxe suivante : class exClass { var $p1; var $p2; function exClass () { } Un objet est instancié par linstruction new : obj = new exClass (); obj->p1 = TEST; Une Class peut-être enrichie par héritage : class exFilleClass extends exClass { } Un objet peut se référencer par lobjet $this. Définition d une classInstanciation d un objet Accès aux propriétés & Méthodes d un objet HéritageRéférence l objet courant

80 PHP - Images Dynamiques Image de fondEntete HTTP PHP n'est pas limité à la création de fichier HTML. Il peut aussi servir à créer des images GIF/JPG/PNG à la volée,. Cet exemple sera utilié dans une page HTML :. Identifiant IMG Créée LIMAGE

82 PHP - Les COOKIES Le PHP supporte les cookies HTTP de manière totalement transparente, La fonction setcookie() sert à créér un cookie. Tout cookie envoyé depuis le client sur le serveur sera stocké sous forme de variable, comme pour les méthodes POST ou GET. Pour assigner plusieurs valeurs à un seul cookie, il vous faut ajouter les caractères [ ] au nom du cookie. Par exemple : SetCookie ("MyCookie[]", "Testing", time()+3600);

83 PHP - Accès à une Base de données PHP dispose, en natif de plusieurs fonctions spécifiques aux bdd du marché : dBase INGRES INFORMIX INTERBASE SQL SERVER mSQL $con = mysql_connect(" ") or die ("erreur); mysql_select_db("test"); r = mysql_query ("select * from personne); mysql_result (r,1,1); echo (r); mysql_close($con); MySQL ODBC ORACLE Ovrimos SQL PostgreSQL Connexion au serveurBaseRequêteRésultat

84 PHP - Fonctions MySQL mysql_connect (s,u,p) : connexion à un serveur de données mysql_select_db(bd) : selectionne une bd mysql_query (req) : envoie une rêquete au serveur mysql_num_fields () : nombre de champs mysql_num_rows () : nombre de lignes mysql_result (result, row,field): contenu dun champ mysql_field_name (i) : nom du champ mysql_field_type (i) : type dun champ

85 PHP - Fonctions Supplémentaires en PHP Gestion de lannuaire LDAP Gestion de la DOM XML Correcteur orthographique Gestion des Gestion FTP Gestion réseaux Gestion des paiements sécurisés Gestion des fichiers ZIP Gestion des PDF Génération dobjet FLASH Cryptage


Télécharger ppt "Les serveurs HTTP IIS APACHE. Historique La version 1.0 est disponible début décembre 1995. Elle fut crée par une équipe de Webmaster indépendant. Cette."

Présentations similaires


Annonces Google