93
Université De Boumerdes Département de physique/Infotronique IT/M2 Technologies Web Réalisé par : Mr RIAHLA Doctorant a l’université de limoge (France) 2009/2010 Université De Limoges

Université De Boumerdes

  • Upload
    kuper

  • View
    26

  • Download
    1

Embed Size (px)

DESCRIPTION

Université De Limoges. Université De Boumerdes. Département de physique/Infotronique IT/M2. Technologies Web. Réalisé par : Mr RIAHLA Doctorant a l’université de limoge (France). 2009/2010. Plan. Bref présentation d’Internet et du www Histoire d’Internet - PowerPoint PPT Presentation

Citation preview

  • UniversitDe BoumerdesDpartement de physique/InfotroniqueIT/M2Technologies WebRalis par : Mr RIAHLADoctorant a luniversit de limoge (France)2009/2010UniversitDe Limoges

  • PlanBref prsentation dInternet et du wwwHistoire dInternetLe W3C

    Architecture et logiciels pour le webClients webServeurs webProxy CacheCDNHTTP

    Technologies ct clientsHTMLCSSJavaScriptApplets

  • Plan

    Technologies ct serveurCookiesCGIPHPASP/ASP.NETServlets et JSP

    Moteurs de recherche et Web Services

  • Brve prsentation dInternet et du www

  • Histoire dInternet1962: tude pour la cration dun rseau pour commander linfrastructure nuclaire amricaine capable de rsister a une attaque nuclaireChoix dun rseau par commutation de paquets1969: construction du premier rseau physique (4 machines, 50 kbps)1972: envoie du premier email (23 machines, 50kpbs)1973: cration de TCP/IP1974: premire utilisation du terme Internet1979: cration dUsenet1982: TCP/IP devient le standard dInternet1983: Cration du Domain Name System

  • Histoire dInternet1986: cration de lIETF1990: cration dun systme hypertext par Tim Berners-Lee1992: le CERN prsente le World Wide Web1993: cration de Mosaic, premier client pour le web1994: cration du w3c1995: IE 1.0 1997: IE 4.0 sort, Netscape a 72%, IE 18%1998: Netscape jette lponge et se fait racheter par AOL1998: Netscape rend le code source de son navigateur disponible sous licence open source2002: Mozilla 1.02004: dbut de la deuxime guerre des browsers

  • W3CWorld Wide Web ConsortiumCre en 1994 3 butsAccs universel au web travers des technologies tenant compte des diffrentes cultures, langues, handicapesWeb smantiqueWeb of trust: guider le dveloppement du web en tenant compte des aspects lgaux, commerciaux et sociaux lis aux nouvelles technologies.Rle du w3cInteroprabilit: les spcifications des protocoles et langages du web doivent pouvoir fonctionner ensembles.volution: sassurer que de nouvelles technologies peuvent tre ajoutes au web.Standardisation: donner des Recommandations dcrivant les technologies du web.

  • W3C - OrganisationLe w3c est accueilli par 3 organisations:MIT (USA)KEIO (Japon)ERCIM (France)3 principesNeutralit: appel aux commentaires publicsCoordination: travaux avec dautres organismes (IETF, Unicode Consortium)Consensus: si possible, dcision lunanimit sinon la majorit.Membres du w3c:Financent le w3cParticipent au choix des technologies futuresWhos who de linformatique: Microsoft, Cisco, Oracle, AppleDes membres institutionnels (universits)

  • W3C Domaines dactivitArchitectureXML, Web Services, Internationalization, URI (Uniform Resource Identifier), DOM

    InteractionCompound Documents, Device independence, Graphics, HTML, CSS, MathML, Synchronized Multimedia, Voice Browser, XForms

    Technologie et socit Semantic Web, Platform for Privacy Preference, XML signature, XML encryption, XML key management, Patent Policy and Standards

    WAI: Web Accessibility InitiativePolitique et techniques pour laccs linformation des personnes handicapes

  • Architecture et logiciels pour le web

  • Fonctionnement du webServeur WebClient Client Client ProxyCache

  • Les clients webVarit des plateformesWindows, Unix, PDA

    Varit des logicielsIE, Firefox, Mozilla, Opera, Lynx

    CaractristiquesGestion dHTML/XHTMLGestion de CSSGestion de JavaScriptGestion de plugins

  • Rpartition des clients webSource: http://www.w3schools.com/browsers/browsers_stats.asp

    Dcembre 2004Octobre 2005IE665.5%68.9%IE59.9%5.6%Mozilla et Firefox17%21.3%Opra 7/81.8%1.3%Netscape1.6%1.6%

  • tapes pour la visualisation dune page webLutilisateur entre une URLLe client web effectue une rsolution DNS pour avoir ladresse du serveurIl effectue la requte http et reoit un document Il analyse le document pour Prparer laffichageTrouver les liens vers les imagesUne requte est effectue pour downloader les imagesCela peut se faire en parallle ou squentiellement

  • Serveurs WebProgrammes rpondant aux requtes des clients webSouvent appel serveur http ou httpdcoute sur le port 80 (convention) dune machine

    2 types de ressourcesStatiques: ne ncessitent pas de traitement ct serveurDynamiques: chaque demande de page ncessite des oprations spcifiques du serveur

    Nombreux logiciels disponibles:ApacheInternet Information ServiceSun Java System Web Server

  • Parts de marcher des serveurs(74 572 794 sites)Apache: 70.98%Microsoft IIS : 20.24%Sun : 2.52%Zeus : 0.78%Source: http://www.netcraft.com/

  • Le serveur ApacheServeur HTTP/1.1Versions pour Windows, OS/2, LinuxUtilise du pr-forkConfiguration du serveur en plaant des directives dans un fichier texte. httpd.conf (lu au dmarrage).htaccess (accs au rpertoire)

    Syntaxe: Directive ValeurLes directives sappliquent lensemble du serveurLeur porte peut-tre limite avec des sections, , , , , ,

  • Apache Restriction daccsDirectives Allow,Denyfrom allfrom www.xxx.yyy.zzzfrom unice.fr

    Peut spcifier un ordre pour les directives daccsorder deny, allow : les deny sont valus avant les alloworder allow, deny : les allow sont valus avant les deny

    Exemple order deny,allow deny from all allow from .ncsa.uiuc.edu

  • Apache Restriction daccs par mot de passeDirectives AllowOverride et AuthConfig doivent avoir t fixesLes directives daccs doivent tre places dans le fichier .htaccessAuthTypeAuthentication: type dauthentification (Basic)AuthName: Nom de la zone dauthentification AuthUserFile: localisation du fichier des passwords (gnrs avec httpasswd)AuthGroupFile: localisation du fichier de groupes (optionnel)Require: Contraintes satisfaire pour autoriser laccs.

    Exemple: AuthType Basic AuthName "By Invitation Only" AuthUserFile /usr/local/apache/passwd/passwords Require user rbowen sungo

    http://httpd.apache.org/docs/howto/auth.html

  • Apache Virtual HostPermet davoir plusieurs serveurs sur une mme machineVirtual Host bas sur IPUtilise lIP de la connexion pour dterminer le bon serveurVirtual Host bas sur le nomUtilise le nom de domaine fourni par le client pour dterminer le serveurExemple NameVirtualHost * ServerName www.domain.tld DocumentRoot /www/domain ServerName www.otherdomain.tld DocumentRoot /www/otherdomain

    http://httpd.apache.org/docs/vhosts/name-based.html

  • Le proxy cachePourquoi demander plusieurs fois la mme chose un serveur?

    Certains clients web ont un cache personnel lutilisateur. Le proxy travaille au niveau dun domaine (ensemble de clients).

    Les clients demandent au proxy, le proxy demande au serveurAmliore la ractivitDiminue la charge dun serveurDiminue lutilisation de la bande passanteRle du proxy cache:Maintenir un cache des objets rcemment demandsRecharger ceux qui ont expir quand ils sont demandsPossibilit de forcer le chargement dune nouvelle copie si Pragma: no-cache

  • Le proxy cacheFonctionnalits avancesInterdire laccs au web a certaines heures/personnesLimiter laccs certains sitesChanger le contenu (supprimer les images, ajouter des informations)

    Quest-ce qui est mis en cache?Tout HTMLCertains rsultats de scripts CGI (si Expires header prsent)Pas ce qui ncessite une authentification

    Au final, cela dpend de la configuration, du logiciel et de http

  • CDNContent Delivery Network Un (trs) gros serveur peut supporter plusieurs centaines de milliers de connexions par secondes

    MAIS:Rien pour la latenceLe rseau peut tre un goulot dtranglement (cf. 9/11)

    Solutions: Diriger un client vers un serveur proche Approcher physiquement le contenu du clientProblmes:Diriger le clientAssurer la synchronisations des miroirs

  • Routage de contenuDonner au client le contenu disponible lendroit le plus appropriPlusieurs mtriquesProximit au sens rseauProximit gographiqueTemps de rponseType dutilisateur (payant)Routage global par redirection DNSSous un mme nom sont regroups plusieurs serveursLe serveur DNS retourne au client la bonne IPMais Risque de latence leve pour le lookupLa requte DNS ne contient pas dinformation sur le contenu demand

  • Routage de contenuRoutage par port TCPLa requte est redirige par un serveur vers dautres serveurs suivant le numro de portRoutage de niveau 7Analyse du contenu de la requteUne requte peut gnrer plusieurs sous requtes transparentesWeb Cache Communication ProtocolUn routeur intercepte les demandes des clients et les envoient des cachesLes caches indiquent aux routeurs (avec WCPP) quels protocoles ils servent

  • HTTP(Vue dans le cours prcdent)

  • Types MIMEMultipurpose Internet Mail ExtensionOriginellement pour le mail, maintenant utilis par http

    Permet dindiquer ce que des donnes (des paquets de 8 bits) reprsentent afin de faciliter leur utilisation

    2 informations sont ncessairesContent-Transfer-Encoding: type dencodage utilis Content-Type: champs type/soustype

    Types MIME communsimage/jpeg text/plain video/mpeg

  • Architecture Client-Serveur pour le Web

  • ClientServeurHTML XHTMLCSSApplets JavaActiveXServlet JavaCGIASPPHPJSPServeur BDJDBC/ ODBC

  • Technologies cot client

  • HTML HyperText Markup LanguageLangage utilis pour les documents portablesDriv de SGML qui tait plus complexeMlange structure et prsentationUtilise des balises Actuellement disponible dans la version 4.0Amlioration de laccessibilitMeilleur sparation de la structure et de la prsentationSupport des framesTables avancesSuccesseur: XHTML

  • Exemple de document HTML

    Document HTML Test

  • Un document HTML commence par un entte

    Il indique quelle version dHTML est utilise (ici 4.01 transitional).

    Il est possible de prciser des sous-versionsHTML 4.01 strictHTML 4.01 transitionalHTML 4.01 framset

    Le reste du document se trouve encadr par les balises

    HTML

  • Les balises permettent de mettre des informations qui ne sont pas du contenuTitre (title)Mots ClefsAutres informations

    Les informations ne sont donc souvent pas affiches lcran

    Un document doit avoir un dans la section

    Des Meta-Data sont optionnelles

    Certaines Meta-Data servent aux moteurs de recherche

    HTML (HEAD)

  • Le corps du document se trouve entre

    Autrefois possible de spcifier des informations de rendu visuelbackground (image de fond)text (couleur du texte)link (couleur dun lien)vlink (couleur dun lien visit)alink (couleur dun lien slectionn)

    Maintenant deprecated, utiliser des feuilles de style

    HTML (BODY)

  • HeadingsDcrit brivement le contenu ou le sujet dune sectionDans un browser, change la taille de la police6 niveaux, de H1 (plus important) H6 (moins important) Elephant Souris

    ParagraphesPermet dindiquer un paragraphe sans balise fermente

    Retour la ligne

    HTML (BODY)

  • ListesDoivent contenir au moins un lement3 possibilits: libres, ordonnes, descriptivesOn peut mlanger/imbriquer diffrentes listes

    Listes libres

    Premire information Deuxime information

    Listes ordonnes

    Premire information Deuxime information

    HTML (BODY)

  • Listes descriptives

    Premire information Deuxime information

    HTML (BODY)

  • Tables:Permet de ranger des informations en lignes et colonnesPeut avoir une CAPTION (son nom)Peut avoir un SUMMARYPossibilit de grouper des lignes ou des colonnesLe nombre de lignes et colonnes est dduit du code HTML

    Ligneslment sans fermeture

    Cellulelment pour lentte dune cellulelment pour le contenuHTML (BODY)

  • Liens et ancres:Permet de relier une ressources une autreChaque lien a 2 ancres et une directionIl part de lancre source et va lancre destination

    Cration de lienBalise Attribut href pour indiquer une sourceAttribut name pour indiquer une destinationAttribut title pour donner des informations (tooltip, son)

    INRIA Sophia Antipolis

    Voici une ancre accessible avec # On va a lancre

    HTML (BODY)

  • On peut mettre href et name ensemblesLes ancres doivent tre uniques dans un document!

    Objets, Images, Applets:Avant, utilisation de et Limits lexistant (comment grer les nouveaux mdia)Applet tait seulement pour les applets JavaProblme de laccessibilitTout est remplac par mais est toujours valide

    HTML (BODY)

  • Inclusion dimage par On indique la localisation de limageUne description courte altUne description longue longdesc (optionnel)

    Inclusion dimage par la photo de toto

    Pour les applets, plus tard

    HTML (BODY)

  • HTML (FRAME) FramesOffre plusieurs vues de documentsPermet de maintenir des informations fixes et dautres temporairesOn remplace par On spcifie le nombre de lignes (rows) et de colonnes (column) .. Les frames peuvent tre imbriquesElles peuvent tre nommes pour devenir la cible de liensUn contenu alternatif peut tre donn avec

  • HTML (FRAME)

    Problmes:Les frames dfinissent un rendu visuel, pas une structureLes frames nont pas dURILa vue dune page avec frames est dtermin par une squence de navigation et non plus une unique action

  • HTML (FORMS) Les forms permettent dajouter de linteractivit

    Linteraction se fait travers des objets control:buttonscheckboxesradio buttonsmenustext inputfile selecthidden controlsobjects controls

    Utilisation dune balise 2 mthodes, POST et GET

  • HTML (FORMS) First name: Last name: email: Male Female

  • HTML (FORMS) 2 mthodes, POST et GET

    La diffrence concerne la faon dont les donnes sont encodes

    GET est utilis dans le cas de demandes pures (pas de modifications des donnes sur le serveur).

    POST est utilis dans le cas de stockage/maj de donnes

    Ct client: avec GET les donnes sont encodes sous forme dune URL. Avec POST elles sont encodes dans le corps de la mthode

    Ct serveur: un traitement diffrent est ncessaire suivant POST/GET

  • CSSCascading Style Sheets (http://www.w3.org/TR/CSS21/)Famille des stylesDcrit comment un document est prsent lcran

    Permet dajouter un style (font, couleur) une page webCSS1 et CSS2 dispo, CSS3 en prparationUne feuille de style se place dans la balise

    .

  • CSSUne feuille de style est constitue de rgles

    Chacune a 3 partiesLe selector qui indique quelle partie du texte est affect par la rgleLa property qui spcifie laspect du rendu qui est modifiLa valeur qui indique la valeur de la property

    Les rgles sont appliques de la plus spcifique la moins spcifique

  • CSS

    Exemple: appliquer un style a llment body (i.e. tout le document)

    body { color: purple; background-color: #d8da3d }

  • CSS (Selector)Les selector peuvent tre des patterns extrmement complexes* nimporte quel lment> relation pre filsE:link E est ancre source dun lien non visitE:visited E est ancre source dun lien visit E[foo="warning"] E dont lattribut foo est warningE#myID E dont lID est myID

    Selector de typeMatch le nom dun type dlment du langage (H1, BODY)

    Selector avec descendantsMatch B si il est contenu dans A blah blih A B {color: blue} H1 {color: blue}

  • CSS (Selector)4 faons de matcher les attributs[att] attribut att[att=val] attribut ayant la valeur val[att~=val] liste de mots contenant le mot val[att|=val] liste de mots commenant par val

    ExemplesA[href="www-sop.inria.fr"] {color: red} p[class~=couleur] {color: red}

    blah blah On peut simplifier ~= par .p.couleur {color: red}

  • JavascriptLangage de script pour pages HTML

    Cre par Netscape corp. en 1995

    RIEN A VOIR AVEC JAVA

    Orient Objet

    Langage interprt au chargement de la page par le client

    Peut tre plac nimporte o dans la page xxxxxxx

  • Javascript Types, variables, fonctions5 types de baseChanes de caractresNombresBoolensObjetsFonctions

    Dclaration de variable var maVariable = valeur maVariable = valeur

  • Javascript Types, variables, fonctions

    Dclaration de fonction function maFonction(argument1,argument2,etc) { xxxxxxx } Appel de fonction maFonction(1,2)

    Accs un champsNotation pointe: toto.titi

  • Javascript Hirarchie dobjets

  • Javascript Hirarchie dobjetsCes objets sont cres par javascript automatiquement si les lments correspondants existent dans la page

    Certains existent toujoursnavigatorwindowdocumentlocationhistory

  • Javascript Objets par dfautnavigatorContient le nom et la version du navigateur, les plugins installs

    windowProprits qui sappliquent la fentre tout entire

    documentProprits sur le contenu du document (titre, couleur)

    locationURL actuelle

    historyURLs visites

  • Javascript Exemples

    var name = "Hege" document.write(name) document.write(""+name+"")

    var browserName=navigator.appName; if (browserName=="Netscape") { alert("Hi Netscape User!"); }

    Affichage de la valeur dune variableDtection du nom du navigateur

  • Javascript Aujourd'huiExtJsJquerry

  • Applets JavaCre par Sun MicrosystemsUn plugin permet de faire tourner une machine virtuelle (JVM) dans un navigateur

    Un client download le code java compile (.class, .jar) et lexcute localement

    Lapplet sexcute dans une "Sand Box", elle a des capacits trs limites, elle ne peut pasLire/Ecrire/Effacer de fichiers localementCrer des connexions rseau vers dautres machines que celle dont elle est originaireCre un ClassLoader..

    On peut saffranchir de ces limitations en signant les applets

  • Applets Java Cycle de vieUne applet passe par diffrentes phaseChargement par le browserMthode init()

    Excution Mthode start()

    Fin dexcution temporaireMthode stop()

    Fin dexcution dfinitiveMthode destroy()

    Il est possible de surcharger ces mthodes pour changer les comportements par dfaut

  • Applet - Exempleimport java.applet.Applet; import java.awt.Graphics; public class Simple extends Applet { StringBuffer buffer; public void init() { buffer = new StringBuffer(); addItem("initializing... "); } public void start() { addItem("starting... "); } public void stop() { addItem("stopping... "); } public void destroy() { addItem("preparing for unloading..."); } void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); } public void paint(Graphics g) { //Draw a Rectangle around the applet's display area. g.drawRect(0, 0, size().width - 1, size().height - 1); //Draw the current string inside the rectangle. g.drawString(buffer.toString(), 5, 15); } }

  • Technologies ct serveur

  • Les CookiesChane de caractre gnre par le serveur et stocke par le navigateurUtiliss pour maintenir des informations de navigationsVoyagent dans les headers httpStructure:NomValeurDate dexpirationChemin de validitDomaine de validitAttribut de scurit (si secure, alors SSL)

  • CGICommon Gateway Interface

    Permet lexcution de programmes externes par un serveur http

    Le CGI permet de faire communiquer le serveur et des programmes pour gnrer des pages web

    Un programme CGI peut tre crit dans un langage quiPeut lire des flux en entreSait traiter des chanes de caractrescrire des flux en sortiePeut tre excut sur un serveur

    Les plus utiliss sont Perl, C, C++, Java

  • CGIOn indique dans la configuration du serveur un rpertoire o se trouvent les scripts CGI

    Quand un fichier est demand dans ces rpertoires, il est excut et le rsultat retourn #!/bin/sh echo Content-type: text/html echo echo echo "" echo "" echo "" echo "" echo "Bonjour" echo "" echo "" Variables denvironnement prdfinies

    QUERY_STRING: Donnes passes au script

    REMOTE_ADDR: Adresse Internet de la machine faisant la requte

  • CGILes informations entres dans les formulaires (mthode GET) sont automatiquement passes dans QUERY_STRING

    On peut passer manuellement des valeurs Link QUERY_STRING contiendra nom=toto&action=findSi mthode POST, les donnes sont envoyes sur lentre standard du script

  • PHPPHP: Hypertext Processor

    Langage de script avec syntaxe perl/C

    Cre en 1994, actuellement en version 4PHP3: totalement interpretPHP4: utilise un moteur de script (ZEND) pour amliorer les performances

    PHP vient avec une norme librairie de fonctions

  • PHP

    PHP vient avec une norme librairie de fonctions10.38 Fonctions mathmatiques 10.39 Fonctions MCAL 10.40 Cryptage 10.41 Hash 10.42 Fonctions diverses 10.43 fonctions mSQL 10.44 Fonctions Microsoft SQL Server 10.45 Fonctions MySQL 10.46 Rseau 10.47 Fonctions NIS 10.48 Oracle 8 functions 10.49 Fonctions Oracle 10.50 Entres/sorties 10.51 Ovrimos SQL 10.52 Expressions rgulires compatibles Perl 10.53 Fonctions PDF 10.54 Verisign Payflow Pro functions 10.55 Fonctions PostgreSQL 10.56 Fonctions POSIX 10.57 Pspell 10.58 GNU Readline 10.59 Fonction GNU Recode 10.60 Expressions rgulires 10.61 Satellite CORBA client extension 10.62 Smaphores et gestion de la mmoire partage 10.63 Gestion des sessions 10.64 Mmoire partage 10.65 SNMP functions 10.66 Socket 10.67 Fonctions de chane de caractres 10.68 Fonctions Shockwave Flash 10.69 Sybase 10.70 ODBC 10.71 Fonctions URL 10.72 Fonctions sur les variables 10.73 WDDX functions 10.74 Analyseur syntaxique XML 10.75 XSLT 10.76 YAZ 10.77 Zlib (Compression)

    10.19 Fonction d'excution de programmes 10.20 Forms Data Format 10.21 Fonctions filePro 10.22 Systme de fichiers 10.23 FTP 10.24 Fonctions de fonctions 10.25 Fonctions GNU Gettext 10.26 GMP 10.27 Fonctions HTTP 10.28 Fonctions Hyperwave 10.29 Fonctions InterBase 10.30 Fonctions ICAP 10.31 Fonctions Informix 10.32 Images 10.33 Fonctions IMAP 10.34 Options PHP & informations 10.35 Fonctions Ingres II 10.36 Fonctions LDAP 10.37 Fonction mail 10.1 Apache 10.2 Tableaux 10.3 Fonctions Aspell 10.4 Fonctions mathmatiques sur des nombres de taille arbitraire 10.5 Fonctions de calendrier 10.6 Fonctions CCVS API 10.7 Fonctions Objets 10.8 Support COM pour Windows 10.9 Fonctions ClibPDF 10.10 CURL 10.11 Fonctions de paiement Cybercash 10.12 Fonctions de dates et heures 10.13 Fonctions dba 10.14 Fonctions dBase 10.15 Fonctions dbm 10.16 Accs aux dossiers 10.17 Fonctions DOM XML 10.18 Gestion des erreurs

  • PHPLe code PHP se trouve dans le fichier HTML ct serveur

    Le serveur interprte le code PHP et envoie la page modifie au client

    Le serveur dtecte les fichiers PHP grce a leur extension

    Intgration dans un fichier:

    code php

    Les instructions sont spares par ;

  • PHP PHP Test PHP Test Hello World Excution par le serveur

  • PHPOn peut interfacer facilement PHP et les forms HTML

    Your name: Your age: Hi . You are years old. Hi Joe. You are 22 years old. ClientClientServeur

  • ASP/ASP.netActive Server Pages cre par Microsoft

    Pages HTML contenant du code de script excut par le serveur

    Scripts supports par dfaut: VBScript, JScript, Perl, et REXX

    ASP.net ajoute tous les langages .net (VB.net, C#, Scheme, Smalltalk)

  • Servlets et JSPRponse de Sun a CGI

    Servlets vs CGI:Efficacit: la machine virtuelle tourne en permanence, les requtes sont traites par des threads, non des processErgonomie: JavaPortabilit: JavaLourdeur: Java

    Java Server Pages: ASP version Sun, langage de script Java

    Pages identifies par lextension .jsp

  • Servlets et JSP

    Pour dvelopper: Java Servlet Development Kit (JSDK)

    Ncessite lajout dun module au serveur:Tomcat pour ApacheAllaire JRun pour IIS

    Les servlets sont places dans un rpertoire du serveur et sont accdes travers une URL.

  • Servlets et JSP - FonctionnementJSP a un fonctionnement en 4 tapesRequte reue par le serveurLa page demande est traduite en servletsLes servlets sont compilesPuis excuts puis le rsultat transmis au client

    Processus lourd, surtout la premire demande

    Les servlets vitent la traduction et la compilation

  • JSP Cycle de viePossibilit de surcharger jspInit() et jspDestroy() pour modifier linitialisation et la destruction

  • JSPInclusion dans un fichier HTML avec 4 tags

    : Directives donnant des indications au moteur JSP : Dclaration Java

    : Expression Java

    : Fragment de code JSP

  • JSP - Exemples

    Salut! La date est

    < % out.println(On cherche la date); java.util.Date date = new java.util.Date(); %> Salut! La date est

  • ServletsSe programme comme un classe Java classiqueImplmente javax.servlet.http ou sous-classe javax.servlet.http.HttpServlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Hello World"); } }

  • Servlets Cycle de vieServlets permanents ou temporaires suivant configuration du serveurPermanent: dmarre avec le serveurTemporaire: dmarre la requte dun client

    Un serveur communique avec une servlet laide de 3 mthodes principales:init()Appele quand la servlet est charge Permet douvrir des fichiers, tablir des connexionsGarantie de se terminer avant tout autre mthodeservice() Chaque appel de client gnre un appel a servicePlusieurs appels concurrents possibles si plusieurs clientsdestroy()Appele par le serveur quand la servlet est dchargePermet le nettoyage de ressources

  • Servlets Cycle de vieLa mthode service() interprete la requte HTTP et dcide quelle autre mthode appeler.

  • Servlets et HTTPPlusieurs mthode prdfinies dans HttpServletdoGet() doHead() doDelete() doOptions() doPost() doTrace()

    doGet(HttpServletRequestreq, HttpServletResponseresp) pour grer les methodes GET

    doPut(HttpServletRequestreq, HttpServletResponseresp) pour grer les mthodes POST Les paramtres sont obtenus en faisant req.getParameter()

  • Moteurs de recherche et Web Services

  • Moteurs de recherchesPermettent de trouver de linformation sur le web

    Indexent rgulirement des sites pour construirent une base de donnes (possibilit de lempcher avec le fichier robots.txt)

    Une recherche se fait dans la base de donnes important davoir une BD jour

    Actuellement 2me gnration1ere gnration: utilisation des mots clefs et des tags META2eme gnration: analyse de la structure des pages (liens entrant, sortant) et construction dun indice de rputation3eme gnration: utilisation des habitudes de recherche et meilleure extraction dinformations contextuelles

  • Google et PageRankGoogle est un moteur de 2eme gnration

    Utilise lalgorithme PageRank pour dterminer ladquation dune page la demande

    PageRank est un indice de limportance dune page web Chaque lien sortant est un vote pour une pagePlus une page a de votes, plus elle est importante

    Variation de lalgorithmelimination des liens venant de link farms Diminution de limportance dun vote suivant la cible

  • Web services - PrincipesAccs au web traditionnellement travers des browsersWeb Services: API permettant des programmes de communiquer avec des technologies www

    Technologies clefs:XML, HTTP, SOAP, WSDL, UDDIIde: Des services sont publis sur InternetDes applications cherchent ces services et y accdentQuestionsQuels services sont offerts?Comment invoque-t-on ces services?De quelles informations ont-il besoin?Comment fournir ces informations?Comment les rponses sont-elles envoyes?

  • WSDLWeb Service Description Language

    Fichier XML contient la description des services groupe de mthode exposes mthode expose paramtre valeur de retour description du paramtre

  • WSDL - Exemple

  • UDDI SOAPUniversal Description, Discovery and Integration

    Annuaire dinformations (WSDL) sur les WS

    Ressemble un DNS ou un broker Corba

    En gnral, les WS communiquent avec SOAP

    Simple Object Access Protocol

    XML sur http

  • SOAP - ExempleHTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length:nnnn

    14.5

  • Rfrenceshttp://www.w3.orghttp://www.commentcamarche.net/internet/http.php3http://www.cookiecentral.comhttp://www-mrim.imag.fr/ressources/docPHP4_v4c/manuel_toc.htmlhttp://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Cours de Master STIC Programmation et scurit du Web, Philippe Poulard : http://disc.inria.fr/perso/philippe.poulard/cours/[email protected] Licence Miage 2005-2006

    *les quipements dinterconnexion des rseaux