78
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 Département de physique/Infotronique IT/M2 Technologies Web Réalisé par : Mr RIAHLA Doctorant a luniversité de limoge (France)

Embed Size (px)

Citation preview

  • Page 1
  • Universit De Boumerdes Dpartement de physique/Infotronique IT/M2 Technologies Web Ralis par : Mr RIAHLA Doctorant a luniversit de limoge (France) 2009/2010 Universit De Limoges
  • Page 2
  • Plan Bref prsentation dInternet et du www Histoire dInternet Le W3C Architecture et logiciels pour le web Clients web Serveurs web Proxy Cache CDN HTTP Technologies ct clients HTML CSS JavaScript Applets
  • Page 3
  • Plan Technologies ct serveur Cookies CGI PHP ASP/ASP.NET Servlets et JSP Moteurs de recherche et Web Services
  • Page 4
  • Brve prsentation dInternet et du www
  • Page 5
  • Histoire dInternet 1962: tude pour la cration dun rseau pour commander linfrastructure nuclaire amricaine capable de rsister a une attaque nuclaire Choix dun rseau par commutation de paquets 1969: construction du premier rseau physique (4 machines, 50 kbps) 1972: envoie du premier email (23 machines, 50kpbs) 1973: cration de TCP/IP 1974: premire utilisation du terme Internet 1979: cration dUsenet 1982: TCP/IP devient le standard dInternet 1983: Cration du Domain Name System
  • Page 6
  • Histoire dInternet 1986: cration de lIETF 1990: cration dun systme hypertext par Tim Berners-Lee 1992: le CERN prsente le World Wide Web 1993: cration de Mosaic, premier client pour le web 1994: cration du w3c 1995: IE 1.0 1997: IE 4.0 sort, Netscape a 72%, IE 18% 1998: Netscape jette lponge et se fait racheter par AOL 1998: Netscape rend le code source de son navigateur disponible sous licence open source 2002: Mozilla 1.0 2004: dbut de la deuxime guerre des browsers
  • Page 7
  • W3C World Wide Web Consortium Cre en 1994 3 buts Accs universel au web travers des technologies tenant compte des diffrentes cultures, langues, handicapes Web smantique Web of trust: guider le dveloppement du web en tenant compte des aspects lgaux, commerciaux et sociaux lis aux nouvelles technologies. Rle du w3c Interoprabilit: 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.
  • Page 8
  • W3C Domaines dactivit Architecture XML, Web Services, Internationalization, URI (Uniform Resource Identifier), DOM Interaction Compound 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 Initiative Politique et techniques pour laccs linformation des personnes handicapes
  • Page 9
  • 2008/2009 Architecture et logiciels pour le web Ralis par : Mr RIAHLA
  • Page 10
  • Fonctionnement du web Serveur Web Client Proxy Cache
  • Page 11
  • Les clients web Varit des plateformes Windows, Unix, PDA Varit des logiciels IE, Firefox, Mozilla, Opera, Lynx Caractristiques Gestion dHTML/XHTML Gestion de CSS Gestion de JavaScript Gestion de plugins
  • Page 12
  • Rpartition des clients web Source: http://www.w3schools.com/browsers/browsers_stats.asp http://www.w3schools.com/browsers/browsers_stats.asp Dcembre 2004 Octobre 2005 IE665.5%68.9% IE59.9%5.6% Mozilla et Firefox 17%21.3% Opra 7/81.8%1.3% Netscape1.6%
  • Page 13
  • tapes pour la visualisation dune page web Lutilisateur entre une URL Le client web effectue une rsolution DNS pour avoir ladresse du serveur Il effectue la requte http et reoit un document Il analyse le document pour Prparer laffichage Trouver les liens vers les images Une requte est effectue pour downloader les images Cela peut se faire en parallle ou squentiellement
  • Page 14
  • Serveurs Web Programmes rpondant aux requtes des clients web Souvent appel serveur http ou httpd coute sur le port 80 (convention) dune machine 2 types de ressources Statiques: ne ncessitent pas de traitement ct serveur Dynamiques: chaque demande de page ncessite des oprations spcifiques du serveur Nombreux logiciels disponibles: Apache Internet Information Service Sun Java System Web Server
  • Page 15
  • 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/http://www.netcraft.com/
  • Page 16
  • Le serveur Apache Serveur HTTP/1.1 Versions pour Windows, OS/2, Linux Utilise du pr-fork Configuration du serveur en plaant des directives dans un fichier texte. httpd.conf (lu au dmarrage).htaccess (accs au rpertoire) Syntaxe: Directive Valeur Les directives sappliquent lensemble du serveur Leur porte peut-tre limite avec des sections,,,,,,
  • Page 17
  • Apache Restriction daccs Directives Allow,Deny from all from www.xxx.yyy.zzzwww.xxx.yyy.zzz from unice.fr Peut spcifier un ordre pour les directives daccs order deny, allow : les deny sont valus avant les allow order allow, deny : les allow sont valus avant les deny Exemple order deny,allow deny from all allow from.ncsa.uiuc.edu
  • Page 18
  • Apache Virtual Host Permet davoir plusieurs serveurs sur une mme machine Virtual Host bas sur IP Utilise lIP de la connexion pour dterminer le bon serveur Virtual Host bas sur le nom Utilise le nom de domaine fourni par le client pour dterminer le serveur Exemple NameVirtualHost * ServerName www.domain.tld DocumentRoot /www/domain ServerName www.otherdomain.tld DocumentRoot /www/otherdomain http://httpd.apache.org/docs/vhosts/name-based.html
  • Page 19
  • Le proxy cache Pourquoi 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 serveur Amliore la ractivit Diminue la charge dun serveur Diminue lutilisation de la bande passante Rle du proxy cache: Maintenir un cache des objets rcemment demands Recharger ceux qui ont expir quand ils sont demands Possibilit de forcer le chargement dune nouvelle copie si Pragma: no- cache
  • Page 20
  • Le proxy cache Fonctionnalits avances Interdire laccs au web a certaines heures/personnes Limiter laccs certains sites Changer le contenu (supprimer les images, ajouter des informations) Quest-ce qui est mis en cache? Tout HTML Certains 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
  • Page 21
  • Routage de contenu Donner au client le contenu disponible lendroit le plus appropri Plusieurs mtriques Proximit au sens rseau Proximit gographique Temps de rponse Type dutilisateur (payant)
  • Page 22
  • HTTP (Vue dans le cours prcdent)
  • Page 23
  • Types MIME Multipurpose Internet Mail Extension Originellement 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 ncessaires Content-Transfer-Encoding: type dencodage utilis Content-Type: champs type/soustype Types MIME communs image/jpeg text/plain video/mpeg
  • Page 24
  • Architecture Client-Serveur pour le Web
  • Page 25
  • Client Serveur HTML XHTML CSS Applets Java ActiveX Servlet Java CGI ASP PHP JSP Serveur BD JDBC/ ODBC
  • Page 26
  • Technologies cot client
  • Page 27
  • HTML HyperText Markup Language Langage utilis pour les documents portables Driv de SGML qui tait plus complexe Mlange structure et prsentation Utilise des balises Actuellement disponible dans la version 4.0 Amlioration de laccessibilit Meilleur sparation de la structure et de la prsentation Support des frames Tables avances Successeur: XHTML
  • Page 28
  • Exemple de document HTML Document HTML Test
  • Page 29
  • 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-versions HTML 4.01 strict HTML 4.01 transitional HTML 4.01 framset Le reste du document se trouve encadr par les balises HTML
  • Page 30
  • Les balises permettent de mettre des informations qui ne sont pas du contenu Titre (title) Mots Clefs Autres 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)
  • Page 31
  • Le corps du document se trouve entre Autrefois possible de spcifier des informations de rendu visuel background (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)
  • Page 32
  • Headings Dcrit brivement le contenu ou le sujet dune section Dans un browser, change la taille de la police 6 niveaux, de H1 (plus important) H6 (moins important) Elephant Souris Paragraphes Permet dindiquer un paragraphe sans balise fermente Retour la ligne HTML (BODY)
  • Page 33
  • Listes Doivent contenir au moins un lement 3 possibilits: libres, ordonnes, descriptives On peut mlanger/imbriquer diffrentes listes Listes libres Premire information Deuxime information Listes ordonnes Premire information Deuxime information HTML (BODY)
  • Page 34
  • Listes descriptives Premire information Deuxime information HTML (BODY)
  • Page 35
  • Tables: Permet de ranger des informations en lignes et colonnes Peut avoir une CAPTION (son nom) Peut avoir un SUMMARY Possibilit de grouper des lignes ou des colonnes Le nombre de lignes et colonnes est dduit du code HTML Lignes lment sans fermeture Cellule lment pour lentte dune cellule lment pour le contenu HTML (BODY)
  • Page 36
  • Liens et ancres: Permet de relier une ressources une autre Chaque lien a 2 ancres et une direction Il part de lancre source et va lancre destination Cration de lien Balise Attribut href pour indiquer une source Attribut name pour indiquer une destination Attribut title pour donner des informations (tooltip, son) INRIA Sophia Antipolis http://www-sop.inria.fr/ Voici une ancre accessible avec # On va a lancre . HTML (BODY)
  • Page 37
  • On peut mettre href et name ensembles Les 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 Java Problme de laccessibilit Tout est remplac par mais est toujours valide HTML (BODY)
  • Page 38
  • Inclusion dimage par On indique la localisation de limage Une description courte alt Une description longue longdesc (optionnel) Inclusion dimage par la photo de toto Pour les applets, plus tard HTML (BODY)
  • Page 39
  • HTML (FRAME) Frames Offre plusieurs vues de documents Permet de maintenir des informations fixes et dautres temporaires On remplace par On spcifie le nombre de lignes (rows) et de colonnes (column) .. Les frames peuvent tre imbriques Elles peuvent tre nommes pour devenir la cible de liens Un contenu alternatif peut tre donn avec
  • Page 40
  • HTML (FRAME) Problmes: Les frames dfinissent un rendu visuel, pas une structure Les frames nont pas dURI La vue dune page avec frames est dtermin par une squence de navigation et non plus une unique action
  • Page 41
  • HTML (FORMS) Les forms permettent dajouter de linteractivit Linteraction se fait travers des objets control: buttons checkboxes radio buttons menus text input file select hidden controls objects controls Utilisation dune balise 2 mthodes, POST et GET
  • Page 42
  • HTML (FORMS) First name: Last name: email: Male Female
  • Page 43
  • 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
  • Page 44
  • CSS Cascading Style Sheets (http://www.w3.org/TR/CSS21/)http://www.w3.org/TR/CSS21/ Famille des styles Dcrit comment un document est prsent lcran Permet dajouter un style (font, couleur) une page web CSS1 et CSS2 dispo, CSS3 en prparation Une feuille de style se place dans la balise .
  • Page 45
  • CSS Une feuille de style est constitue de rgles Chacune a 3 parties Le selector qui indique quelle partie du texte est affect par la rgle La property qui spcifie laspect du rendu qui est modifi La valeur qui indique la valeur de la property Les rgles sont appliques de la plus spcifique la moins spcifique
  • Page 46
  • CSS Exemple: appliquer un style a llment body (i.e. tout le document) body { color: purple; background-color: #d8da3d }
  • Page 47
  • Javascript Langage 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
  • Page 48
  • Javascript Types, variables, fonctions 5 types de base Chanes de caractres Nombres Boolens Objets Fonctions Dclaration de variable var maVariable = valeur maVariable = valeur
  • Page 49
  • Javascript Types, variables, fonctions Dclaration de fonction function maFonction(argument1,argument2,etc) { xxxxxxx } Appel de fonction maFonction(1,2) Accs un champs Notation pointe: toto.titi
  • Page 50
  • Javascript Hirarchie dobjets
  • Page 51
  • Javascript Objets par dfaut navigator Contient le nom et la version du navigateur, les plugins installs window Proprits qui sappliquent la fentre tout entire document Proprits sur le contenu du document (titre, couleur) location URL actuelle history URLs visites
  • Page 52
  • 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 variable Dtection du nom du navigateur
  • Page 53
  • Javascript Aujourd'hui ExtJs Jquerry Ajax
  • Page 54
  • Applets Java Cre par Sun Microsystems Un 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 pas Lire/Ecrire/Effacer de fichiers localement Crer des connexions rseau vers dautres machines que celle dont elle est originaire Cre un ClassLoader .. On peut saffranchir de ces limitations en signant les applets
  • Page 55
  • Applets Java Cycle de vie Une applet passe par diffrentes phase Chargement par le browser Mthode init() Excution Mthode start() Fin dexcution temporaire Mthode stop() Fin dexcution dfinitive Mthode destroy() Il est possible de surcharger ces mthodes pour changer les comportements par dfaut
  • Page 56
  • Technologies ct serveur
  • Page 57
  • Les Cookies Chane de caractre gnre par le serveur et stocke par le navigateur Utiliss pour maintenir des informations de navigations Voyagent dans les headers http Structure: Nom Valeur Date dexpiration Chemin de validit Domaine de validit Attribut de scurit (si secure, alors SSL)
  • Page 58
  • CGI Common 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 qui Peut lire des flux en entre Sait traiter des chanes de caractres crire des flux en sortie Peut tre excut sur un serveur Les plus utiliss sont Perl, C, C++, Java
  • Page 59
  • PHP PHP: Hypertext Processor Langage de script avec syntaxe perl/C Cre en 1994, actuellement en version 4 PHP3: totalement interpret PHP4: utilise un moteur de script (ZEND) pour amliorer les performances PHP vient avec une norme librairie de fonctions
  • Page 60
  • PHP PHP vient avec une norme librairie de fonctions 10.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
  • Page 61
  • PHP Le 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 ;
  • Page 62
  • PHP PHP Test Hello World '; ?> PHP Test Hello World Excution par le serveur
  • Page 63
  • PHP On peut interfacer facilement PHP et les forms HTML Your name: Your age: Hi. You are years old. Hi Joe. You are 22 years old. Client Serveur
  • Page 64
  • ASP/ASP.net Active 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)
  • Page 65
  • Servlets et JSP Rponse de Sun a CGI Servlets vs CGI: Efficacit: la machine virtuelle tourne en permanence, les requtes sont traites par des threads, non des process Ergonomie: Java Portabilit: Java Lourdeur: Java Java Server Pages: ASP version Sun, langage de script Java Pages identifies par lextension.jsp
  • Page 66
  • Servlets et JSP Pour dvelopper: Java Servlet Development Kit (JSDK) Ncessite lajout dun module au serveur: Tomcat pour Apache Allaire JRun pour IIS Les servlets sont places dans un rpertoire du serveur et sont accdes travers une URL.
  • Page 67
  • Servlets et JSP - Fonctionnement JSP a un fonctionnement en 4 tapes Requte reue par le serveur La page demande est traduite en servlets Les servlets sont compiles Puis excuts puis le rsultat transmis au client
  • Page 68
  • JSP - Exemples Salut! La date est < % out.println( On cherche la date ); java.util.Date date = new java.util.Date(); %> Salut! La date est
  • Page 69
  • Servlets (A tudier) Se programme comme un classe Java classique Implmente 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"); }
  • Page 70
  • Moteurs de recherche et Web Services
  • Page 71
  • Moteurs de recherches Permettent 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 gnration 1ere gnration: utilisation des mots clefs et des tags META 2eme gnration: analyse de la structure des pages (liens entrant, sortant) et construction dun indice de rputation 3eme gnration: utilisation des habitudes de recherche et meilleure extraction dinformations contextuelles
  • Page 72
  • Google et PageRank Google 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 page Plus une page a de votes, plus elle est importante Variation de lalgorithme limination des liens venant de link farms Diminution de limportance dun vote suivant la cible
  • Page 73
  • Web services - Principes Accs au web traditionnellement travers des browsers Web Services: API permettant des programmes de communiquer avec des technologies www Technologies clefs: XML, HTTP, SOAP, WSDL, UDDI Ide: Des services sont publis sur Internet Des applications cherchent ces services et y accdent Questions Quels 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?
  • Page 74
  • WSDL Web Service Description Language Fichier XML contient la description des services groupe de mthode exposes mthode expose paramtre valeur de retour description du paramtre
  • Page 75
  • WSDL - Exemple
  • Page 76
  • UDDI SOAP Universal 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
  • Page 77 14.5">
  • SOAP - Exemple HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content- Length:nnnn 14.5
  • Page 78
  • Rfrences http://www.w3.org http://www.commentcamarche.net/internet/http.php3 http://www.cookiecentral.com http://www- mrim.imag.fr/ressources/docPHP4_v4c/manuel_toc.html http://www- mrim.imag.fr/ressources/docPHP4_v4c/manuel_toc.html http://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/masterhttp://disc.inria.fr/perso/philippe.poulard/cours/master [email protected] Licence Miage 2005-2006 [email protected]