Universit - PowerPoint PPT Presentation

1 / 78
About This Presentation
Title:

Universit

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 ... – PowerPoint PPT presentation

Number of Views:157
Avg rating:3.0/5.0
Slides: 79
Provided by: emon173
Category:

less

Transcript and Presenter's Notes

Title: Universit


1
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)
2009/2010
2
Plan
  • Bref présentation dInternet et du www
  • Histoire dInternet
  • Le W3C
  • Architecture et logiciels pour le web
  • Clients web
  • Serveurs web
  • Proxy Cache
  • CDN
  • HTTP
  • Technologies côté clients
  • HTML
  • CSS
  • JavaScript
  • Applets

3
Plan
  • Technologies côté serveur
  • Cookies
  • CGI
  • PHP
  • ASP/ASP.NET
  • Servlets et JSP
  • Moteurs de recherche et Web Services

4
Brève présentation dInternet et du www
5
Histoire dInternet
  • 1962 étude pour la création dun réseau pour
    commander linfrastructure nucléaire américaine
    capable de résister a une attaque nucléaire
  • Choix dun réseau par commutation de paquets
  • 1969 construction du premier réseau physique (4
    machines, 50 kbps)
  • 1972 envoie du premier email (23 machines,
    50kpbs)
  • 1973 création de TCP/IP
  • 1974 première utilisation du terme Internet
  • 1979 création dUsenet
  • 1982 TCP/IP devient le standard dInternet
  • 1983 Création du Domain Name System

6
Histoire dInternet
  • 1986 création de lIETF
  • 1990 création dun système hypertext par Tim
    Berners-Lee
  • 1992 le CERN présente le World Wide Web
  • 1993 création de Mosaic, premier client pour le
    web
  • 1994 création du w3c
  • 1995 IE 1.0
  • 1997 IE 4.0 sort, Netscape a 72, IE 18
  • 1998 Netscape jette léponge 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 début de la deuxième guerre des browsers

7
W3C
  • World Wide Web Consortium
  • Crée en 1994
  • 3 buts
  • Accès universel au web à travers des technologies
    tenant compte des différentes cultures, langues,
    handicapes
  • Web sémantique
  • Web of trust guider le développement du web en
    tenant compte des aspects légaux, commerciaux et
    sociaux liés aux nouvelles technologies.
  • Rôle du w3c
  • Interopérabilité les spécifications des
    protocoles et langages du web doivent pouvoir
    fonctionner ensembles.
  • Évolution sassurer que de nouvelles
    technologies peuvent être ajoutées au web.
  • Standardisation donner des Recommandations
    décrivant les technologies du web.

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 société
  • 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 laccés à
    linformation des personnes handicapées

9
Architecture et logiciels pour le web

Client
Server Dapplication
Serveur de base de données
2008/2009
Réalisé par Mr RIAHLA
10
Fonctionnement du web
Client
Serveur Web
Client
Proxy Cache
Client
11
Les clients web
  • Variété des plateformes
  • Windows, Unix, PDA
  • Variété des logiciels
  • IE, Firefox, Mozilla, Opera, Lynx
  • Caractéristiques
  • Gestion dHTML/XHTML
  • Gestion de CSS
  • Gestion de JavaScript
  • Gestion de plugins

12
Répartition des clients web
Décembre 2004 Octobre 2005
IE6 65.5 68.9
IE5 9.9 5.6
Mozilla et Firefox 17 21.3
Opéra 7/8 1.8 1.3
Netscape 1.6 1.6
  • Source http//www.w3schools.com/browsers/browsers
    _stats.asp

13
Étapes pour la visualisation dune page web
  • Lutilisateur entre une URL
  • Le client web effectue une résolution DNS pour
    avoir ladresse du serveur
  • Il effectue la requête http et reçoit un document
  • Il analyse le document pour
  • Préparer laffichage
  • Trouver les liens vers les images
  • Une requête est effectuée pour downloader les
    images
  • Cela peut se faire en parallèle ou
    séquentiellement

14
Serveurs Web
  • Programmes répondant aux requêtes des clients web
  • Souvent appelé serveur http ou httpd
  • Écoute sur le port 80 (convention) dune machine
  • 2 types de ressources
  • Statiques ne nécessitent pas de traitement côté
    serveur
  • Dynamiques chaque demande de page nécessite des
    opérations spécifiques du serveur
  • Nombreux logiciels disponibles
  • Apache
  • Internet Information Service
  • Sun Java System Web Server

15
Parts de marcher des serveurs(74 572 794 sites)
  • Sun 2.52
  • Zeus 0.78
  • Apache 70.98
  • Microsoft IIS 20.24

Source http//www.netcraft.com/
16
Le serveur Apache
  • Serveur HTTP/1.1
  • Versions pour Windows, OS/2, Linux
  • Utilise du pré-fork
  • Configuration du serveur en plaçant des
    directives dans un fichier texte.
  • httpd.conf (lu au démarrage)
  • .htaccess (accès au répertoire)
  • Syntaxe Directive Valeur
  • Les directives sappliquent à lensemble du
    serveur
  • Leur portée peut-être limitée avec des sections
  • ltDirectorygt, ltDirectoryMatchgt, ltFilesgt,
    ltFilesMatchgt, ltLocationgt, ltLocationMatchgt,
    ltVirtualHostgt

17
Apache Restriction daccés
  • Directives Allow,Deny
  • from all
  • from www.xxx.yyy.zzz
  • from unice.fr
  • Peut spécifier un ordre pour les directives
    daccés
  • order deny, allow les deny sont évalués avant
    les allow
  • order allow, deny les allow sont évalués avant
    les deny
  • Exemple
  • order deny,allow
  • deny from all
  • allow from .ncsa.uiuc.edu

18
Apache Virtual Host
  • Permet davoir plusieurs serveurs sur une même
    machine
  • Virtual Host basé sur IP
  • Utilise lIP de la connexion pour déterminer le
    bon serveur
  • Virtual Host basé sur le nom
  • Utilise le nom de domaine fourni par le client
    pour déterminer
  • le serveur
  • Exemple
  • NameVirtualHost
  • ltVirtualHost gt
  • ServerName www.domain.tld
  • DocumentRoot /www/domain
  • lt/VirtualHostgt
  • ltVirtualHost gt
  • ServerName www.otherdomain.tld
  • DocumentRoot /www/otherdomain
  • lt/VirtualHostgt
  • http//httpd.apache.org/docs/vhosts/name-based.htm
    l

19
Le proxy cache
  • Pourquoi demander plusieurs fois la même 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
  • Améliore la réactivité
  • Diminue la charge dun serveur
  • Diminue lutilisation de la bande passante
  • Rôle du proxy cache
  • Maintenir un cache des objets récemment demandés
  • Recharger ceux qui ont expiré quand ils sont
    demandés
  • Possibilité de forcer le chargement dune
    nouvelle copie si Pragma no-cache

20
Le proxy cache
  • Fonctionnalités avancées
  • Interdire laccès au web a certaines
    heures/personnes
  • Limiter laccès à certains sites
  • Changer le contenu (supprimer les images, ajouter
    des informations)
  • Quest-ce qui est mis en cache?
  • Tout HTML
  • Certains résultats de scripts CGI (si Expires
    header présent)
  • Pas ce qui nécessite une authentification
  • Au final, cela dépend de la configuration, du
    logiciel et de http

21
Routage de contenu
  • Donner au client le contenu disponible à
    lendroit le plus approprié
  • Plusieurs métriques
  • Proximité au sens réseau
  • Proximité géographique
  • Temps de réponse
  • Type dutilisateur (payant)

22
HTTP(Vue dans le cours précédent)
23
Types MIME
  • Multipurpose Internet Mail Extension
  • Originellement pour le mail, maintenant utilisé
    par http
  • Permet dindiquer ce que des données (des paquets
    de 8 bits)
  • représentent afin de faciliter leur utilisation
  • 2 informations sont nécessaires
  • Content-Transfer-Encoding type dencodage
    utilisé
  • Content-Type champs type/soustype
  • Types MIME communs
  • image/jpeg
  • text/plain
  • video/mpeg

24
Architecture Client-Serveur pour le Web
25
Client
Serveur
CGI
Serveur BD
HTML XHTML CSS
ASP
PHP
Applets Java
JSP
ActiveX
Servlet Java
JDBC/ ODBC
26
Technologies coté client
27
HTML
  • HyperText Markup Language
  • Langage utilisé pour les documents portables
  • Dérivé de SGML qui était plus complexe
  • Mélange structure et présentation
  • Utilise des balises
  • ltbalisegt lt/balisegt
  • Actuellement disponible dans la version 4.0
  • Amélioration de laccessibilité
  • Meilleur séparation de la structure et de la
    présentation
  • Support des frames
  • Tables avancées
  • Successeur XHTML

28
  • Exemple de document HTML

lt!DOCTYPE HTML PUBLIC  " -//W3C/DTD HTML 4.01
Transitional//EN"  "http//www/w3.org/TR/html4/st
rict.dtd" gt ltHTMLgt ltHEADgt ltTITLEgt
Document HTML lt/TITLEgt lt/HEADgt ltBODYgt
ltPgt Test lt/BODYgt lt/HTMLgt
29
HTML
  • Un document HTML commence par un entête
  • lt!DOCTYPE HTML PUBLIC  " -//W3C/DTD HTML 4.01
    Transitional//EN"  "http//www/w3.org/TR/html4/str
    ict.dtd"  gt
  • Il indique quelle version dHTML est utilisée
    (ici 4.01 transitional).
  • Il est possible de préciser 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 ltHTMLgt lt/HTMLgt

30
HTML (HEAD)
  • Les balises ltHEADgt lt/HEADgt permettent de mettre
    des informations qui ne sont pas du contenu
  • Titre (title)
  • Mots Clefs
  • Autres informations
  • Les informations ne sont donc souvent pas
    affichées à lécran
  • Un document doit avoir un ltTITLEgt dans la section
    ltHEADgt
  • Des Meta-Data sont optionnelles
  • ltMETA name"Auteur" content"Fabrice Huet"gt
  • Certaines Meta-Data servent aux moteurs de
    recherche
  • ltMETA name"keywords" lang"fr"
    content"Argent Rapide "gt

31
HTML (BODY)
  • Le corps du document se trouve entre ltBODYgt
    lt/BODYgt
  • Autrefois possible de spécifier 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 sélectionné)
  • Maintenant deprecated, utiliser des feuilles de
    style

32
HTML (BODY)
  • Headings
  • Décrit brièvement 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)
  • ltH1gt Elephant lt/H1gt ltH6gt Souris lt/H6gt
  • Paragraphes
  • Permet dindiquer un paragraphe
  • ltPgt sans balise fermente
  • Retour à la ligne
  • ltbrgt

33
HTML (BODY)
  • Listes
  • Doivent contenir au moins un élement
  • 3 possibilités libres, ordonnées, descriptives
  • On peut mélanger/imbriquer différentes listes
  • Listes libres
  • ltULgt
  • ltLIgt Première information
  • ltLIgt Deuxième information
  • lt/ULgt
  • Listes ordonnées
  • ltOLgt
  • ltLIgt Première information
  • ltLIgt Deuxième information
  • lt/OLgt

34
HTML (BODY)
  • Listes descriptives
  • ltDLgt
  • ltDTgt Première ltDDgt information
  • ltDTgt Deuxième ltDDgt information
  • lt/DLgt

35
HTML (BODY)
  • 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 déduit du
    code HTML
  • Lignes
  • Élément ltTRgt sans fermeture
  • Cellule
  • Élément ltTHgt pour lentête dune cellule
  • Élément ltTDgt pour le contenu

36
HTML (BODY)
  • 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
  • Création de lien
  • Balise ltAgt lt/Agt
  • Attribut href pour indiquer une source
  • Attribut name pour indiquer une destination
  • Attribut title pour donner des informations
    (tooltip, son)
  • ltA href"http//www-sop.inria.fr/"gt INRIA Sophia
    Antipolislt/Agt
  • ltA name"ancre"gt Voici une ancre accessible avec
    lt/Agt
  • ltA href".ancre"gt On va a lancrelt/Agt

37
HTML (BODY)
  • On peut mettre href et name ensembles
  • Les ancres doivent être uniques dans un document!
  • Objets, Images, Applets
  • Avant, utilisation de ltIMGgt et ltAPPLETgt
  • Limités à lexistant (comment gérer les nouveaux
    média)
  • Applet était seulement pour les applets Java
  • Problème de laccessibilité
  • Tout est remplacé par ltOBJECTgt mais ltIMGgt est
    toujours valide

38
HTML (BODY)
  • Inclusion dimage par ltIMGgt
  • On indique la localisation de limage
  • Une description courte alt
  • Une description longue longdesc (optionnel)
  • ltIMG src"toto.png" alt"la photo de toto"gt
  • Inclusion dimage par ltOBJECTgt
  • ltOBJECT data"toto.png" type"img/png"gt
  • la photo de toto
  • lt/OBJECTgt
  • Pour les applets, plus tard

39
HTML (FRAME)
  • Frames
  • Offre plusieurs vues de documents
  • Permet de maintenir des informations fixes et
    dautres temporaires
  • On remplace ltBODYgt par ltFRAMESETgt
  • On spécifie le nombre de lignes (rows) et de
    colonnes (column)
  • ltFRAMESET rows"30, 70" cols"50, 50"gt
  • ..
  • lt/FRAMESETgt
  • Les frames peuvent être imbriquées
  • Elles peuvent être nommées pour devenir la cible
    de liens
  • Un contenu alternatif peut être donné avec
    ltNOFRAMESgt

40
HTML (FRAME)
  • Problèmes
  • Les frames définissent un rendu visuel, pas une
    structure
  • Les frames nont pas dURI
  • La vue dune page avec frames est déterminé par
    une séquence de navigation et non plus une unique
    action

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 ltFORMgt lt/FORMgt
  • 2 méthodes, POST et GET

42
HTML (FORMS)
  • ltFORM action"http//somesite.com/prog/adduser"
    method"post"gt
  • ltPgt
  • First name
  • ltINPUT type"text" name"firstname"gtltBR
    gt
  • Last name
  • ltINPUT type"text" name"lastname"gtltBR
    gt
  • email ltINPUT type"text"
    name"email"gtltBRgt
  • ltINPUT type"radio" name"sex"
    value"Male"gt MaleltBRgt
  • ltINPUT type"radio" name"sex"
    value"Female"gt FemaleltBRgt ltINPUT
    type"submit" value"Send"gt ltINPUT type"reset"gt
  • lt/Pgt
  • lt/FORMgt

43
HTML (FORMS)
  • 2 méthodes, POST et GET
  • La différence concerne la façon dont les données
    sont encodées
  • GET est utilisé dans le cas de demandes pures
    (pas de modifications des données sur le
    serveur).
  • POST est utilisé dans le cas de stockage/maj de
    données
  • Côté client avec GET les données sont encodées
    sous forme dune URL. Avec POST elles sont
    encodées dans le corps de la méthode
  • Côté serveur un traitement différent est
    nécessaire suivant POST/GET

44
CSS
  • Cascading Style Sheets (http//www.w3.org/TR/CSS21
    /)
  • Famille des styles
  • Décrit comment un document est présenté à lécran
  • Permet dajouter un style (font, couleur) à une
    page web
  • CSS1 et CSS2 dispo, CSS3 en préparation
  • Une feuille de style se place dans la balise
    ltHEADgt

ltHEADgt ltlink rel"stylesheet" type"text/css"
href"fichier.css"gt lt/HEADgt
ltHEADgt ltstyle type "text/css"gt . lt/stylegt lt/HEAD
gt
45
CSS
  • Une feuille de style est constituée de règles
  • Chacune a 3 parties
  • Le selector qui indique quelle partie du texte
    est affecté par la règle
  • La property qui spécifie laspect du rendu qui
    est modifié
  • La valeur qui indique la valeur de la property
  • Les règles sont appliquées de la plus spécifique
    à la moins spécifique

46
CSS
  • Exemple appliquer un style a lélément body
    (i.e. tout le document)

ltHEADgt ltstyle type "text/css"gt body
color purple background-color
d8da3d lt/stylegt lt/HEADgt
47
Javascript
  • Langage de script pour pages HTML
  • Crée par Netscape corp. en 1995
  • RIEN A VOIR AVEC JAVA
  • Orienté Objet
  • Langage interprété au chargement de la page par
    le client
  • Peut être placé nimporte où dans la page
  • ltscript type"text/javascript"gt xxxxxxx lt/scriptgt
  • ltscript src"xxx.js"gtlt/scriptgt

48
Javascript Types, variables, fonctions
  • 5 types de base
  • Chaînes de caractères
  • Nombres
  • Booléens
  • Objets
  • Fonctions
  • Déclaration de variable
  • var maVariable valeur
  • maVariable valeur

49
Javascript Types, variables, fonctions
  • Déclaration de fonction
  • function maFonction(argument1,argument2,etc)
  • xxxxxxx
  • Appel de fonction
  • maFonction(1,2)
  • Accés à un champs
  • Notation pointée toto.titi

50
Javascript Hiérarchie dobjets
51
Javascript Objets par défaut
  • navigator
  • Contient le nom et la version du navigateur, les
    plugins installés
  • window
  • Propriétés qui sappliquent à la fenêtre tout
    entière
  • document
  • Propriétés sur le contenu du document (titre,
    couleur)
  • location
  • URL actuelle
  • history
  • URLs visitées

52
Javascript Exemples
  • lthtmlgt
  • ltheadgt
  • lt/headgt
  • ltbodygt
  • ltscript type"text/javascript"gt
  • var name "Hege"
  • document.write(name)
  • document.write("lth1gt"name"lt/h1gt")
  • lt/scriptgt
  • lt/bodygt lt/htmlgt

Affichage de la valeur dune variable
lthtmlgt ltheadgt lt/headgt ltbodygt ltscript
type"text/javascript"gt var
browserNamenavigator.appName if
(browserName"Netscape") alert("Hi
Netscape User!") lt/scriptgt lt/bodygt lt/html
gt
Détection du nom du navigateur
53
Javascript Aujourd'hui
  • ExtJs
  • Jquerry
  • Ajax

54
Applets Java
  • Crée 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 lexécute localement
  • Lapplet sexécute dans une "Sand Box", elle a
    des capacités très limitées, elle ne peut pas
  • Lire/Ecrire/Effacer de fichiers localement
  • Créer des connexions réseau vers dautres
    machines que celle dont elle est originaire
  • Crée un ClassLoader
  • ..
  • On peut saffranchir de ces limitations en
    signant les applets

55
Applets Java Cycle de vie
  • Une applet passe par différentes phase
  • Chargement par le browser
  • Méthode init()
  • Exécution
  • Méthode start()
  • Fin dexécution temporaire
  • Méthode stop()
  • Fin dexécution définitive
  • Méthode destroy()
  • Il est possible de surcharger ces méthodes pour
    changer les
  • comportements par défaut

56
Technologies côté serveur
57
Les Cookies
  • Chaîne de caractère générée par le serveur et
    stockée par le navigateur
  • Utilisés pour maintenir des informations de
    navigations
  • Voyagent dans les headers http
  • Structure
  • Nom
  • Valeur
  • Date dexpiration
  • Chemin de validité
  • Domaine de validité
  • Attribut de sécurité (si secure, alors SSL)

58
CGI
  • Common Gateway Interface
  • Permet lexécution de programmes externes par un
    serveur http
  • Le CGI permet de faire communiquer le serveur et
    des programmes pour générer des pages web
  • Un programme CGI peut être écrit dans un langage
    qui
  • Peut lire des flux en entrée
  • Sait traiter des chaînes de caractères
  • Écrire des flux en sortie
  • Peut être exécuté sur un serveur
  • Les plus utilisés sont Perl, C, C, Java

59
PHP
  • PHP Hypertext Processor
  • Langage de script avec syntaxe perl/C
  • Crée en 1994, actuellement en version 4
  • PHP3 totalement interpreté
  • PHP4 utilise un moteur de script (ZEND) pour
    améliorer les performances
  • PHP vient avec une énorme librairie de fonctions

60
PHP
  • PHP vient avec une énorme librairie de fonctions

10.19 Fonction d'exécution de programmes 10.20
Forms Data Format 10.21 Fonctions filePro 10.22
Système 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 mathématiques 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 Accès aux dossiers
10.17 Fonctions DOM XML 10.18 Gestion des
erreurs
10.38 Fonctions mathématiques 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 Réseau 10.47 Fonctions NIS 10.48 Oracle
8 functions 10.49 Fonctions Oracle 10.50
Entrées/sorties 10.51 Ovrimos SQL 10.52
Expressions régulières 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 régulières 10.61 Satellite
CORBA client extension 10.62 Sémaphores et
gestion de la mémoire partagée 10.63 Gestion des
sessions 10.64 Mémoire partagée 10.65 SNMP
functions 10.66 Socket 10.67 Fonctions de
chaîne de caractères 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)
61
PHP
  • Le code PHP se trouve dans le fichier HTML côté
    serveur
  • Le serveur interprète le code PHP et envoie la
    page modifiée au client
  • Le serveur détecte les fichiers PHP grâce a leur
    extension
  • Intégration dans un fichier
  • lt? code php ?gt
  • lt?php code php ?gt
  • lt?PHP code php ?gt
  • ltSCRIPT LANGUAGE"php"gt code php lt/SCRIPTgt
  • Les instructions sont séparées par

62
PHP
lthtmlgt ltheadgt  lttitlegtPHP Testlt/titlegt lt/headgt
 ltbodygt  lt?php echo 'ltpgtHello Worldlt/pgt'
?gtlt/bodygtlt/htmlgt
Exécution par le serveur
lthtmlgt ltheadgt lttitlegtPHP Testlt/titlegt lt/headgt
ltbodygt ltpgtHello Worldlt/pgt lt/bodygt
lt/htmlgt
63
PHP
  • On peut interfacer facilement PHP et les forms
    HTML

Client
ltform action"action.php" method"post"gt ltpgt
Your name ltinput type"text" name"name" /gt lt/pgt
ltpgt Your age ltinput type"text" name"age" /gt
lt/pgt ltpgt ltinput type"submit" /gt
lt/pgt lt/formgt
Hi lt?php echo _POST'name' ?gt.You are lt?php
echo _POST'age' ?gt years old.
Serveur
Hi Joe. You are 22 years old.
Client
64
ASP/ASP.net
  • Active Server Pages crée par Microsoft
  • Pages HTML contenant du code de script exécuté
    par le serveur
  • Scripts supportés par défaut VBScript, JScript,
    Perl, et REXX
  • ASP.net ajoute tous les langages .net (VB.net,
    C, Scheme, Smalltalk)

65
Servlets et JSP
  • Réponse de Sun a CGI
  • Servlets vs CGI
  • Efficacité la machine virtuelle tourne en
    permanence, les
  • requêtes sont traitées par des threads, non
    des process
  • Ergonomie Java
  • Portabilité Java
  • Lourdeur Java
  • Java Server Pages ASP version Sun, langage de
    script Java
  • Pages identifiées par lextension .jsp

66
Servlets et JSP
  • Pour développer Java Servlet Development Kit
    (JSDK)
  • Nécessite lajout dun module au serveur
  • Tomcat pour Apache
  • Allaire JRun pour IIS
  • Les servlets sont placées dans un répertoire du
    serveur et sont
  • accédées à travers une URL.

67
Servlets et JSP - Fonctionnement
  • JSP a un fonctionnement en 4 étapes
  • Requête reçue par le serveur
  • La page demandée est traduite en servlets
  • Les servlets sont compilées
  • Puis exécutés puis le résultat transmis au client

68
JSP - Exemples
  • ltHTMLgt
  • ltBODYgt
  • Salut! La date est lt new java.util.Date()
    gt
  • lt/BODYgt
  • lt/HTMLgt

ltHTMLgt ltBODYgt lt
out.println( On cherche la date )
java.util.Date date new java.util.Date()
gt Salut! La date est lt date gt
lt/BODYgt lt/HTMLgt
69
Servlets (A étudier)
  • Se programme comme un classe Java classique
  • Implémente 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")
70
Moteurs de recherche et Web Services
71
Moteurs de recherches
  • Permettent de trouver de linformation sur le web
  • Indexent régulièrement des sites pour
    construirent une base de données (possibilité de
    lempêcher avec le fichier robots.txt)
  • Une recherche se fait dans la base de données
  • ? important davoir une BD à jour
  • Actuellement 2ème génération
  • 1ere génération utilisation des mots clefs et
    des tags META
  • 2eme génération analyse de la structure des
    pages (liens entrant, sortant) et construction
    dun indice de réputation
  • 3eme génération utilisation des habitudes de
    recherche et meilleure extraction dinformations
    contextuelles

72
Google et PageRank
  • Google est un moteur de 2eme génération
  • Utilise lalgorithme PageRank pour déterminer
    ladéquation 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

73
Web services - Principes
  • Accés 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
  • Idée
  • Des services sont publiés sur Internet
  • Des applications cherchent ces services et y
    accèdent
  • Questions
  • Quels services sont offerts?
  • Comment invoque-t-on ces services?
  • De quelles informations ont-il besoin?
  • Comment fournir ces informations?
  • Comment les réponses sont-elles envoyées?

74
WSDL
  • Web Service Description Language
  • Fichier XML
  • ltdefinitionsgt contient la description des
    services
  • ltportTypegt groupe de méthode exposées
  • ltoperationgt méthode exposée
  • ltinputgt paramètre
  • ltoutputgt valeur de retour
  • ltmessagegt description du paramètre

75
WSDL - Exemple
  • ltdefinitions name"MobilePhoneService" gt
  • ltportType name"MobilePhoneService_port"gt
  • ltoperation name"getPrice"gt
  • ltinput message"PhoneModel"/gt
  • ltoutput message"PhoneModelPrice"/gt
  • lt/operationgt
  • lt/portTypegt
  • ltmessage name"ListOfPhoneModels"gt
  • ltpart name"models" type"tnsVector"gt
  • lt/messagegt
  • ltmessage name"PhoneModel"gt
  • ltpart name"model" type"xsdString"gt
  • lt/messagegt
  • ltmessage name"PhoneModelPrice"gt
  • ltpart name"price" type"xsdString"gt
  • lt/messagegt
  • lt/definitionsgt

76
UDDI SOAP
  • Universal Description, Discovery and Integration
  • Annuaire dinformations (WSDL) sur les WS
  • Ressemble à un DNS ou un broker Corba
  • En général, les WS communiquent avec SOAP
  • Simple Object Access Protocol
  • XML sur http

77
SOAP - Exemple
  • HTTP/1.1 200 OK Content-Type text/xml
    charset"utf-8" Content-Lengthnnnn
  • ltSOAP-ENVEnvelope
  • xmlnsSOAP-ENV"http//schemas.xmlsoap.org/so
    ap/envelope/"
  • SOAP-ENVencodingStyle"http//schemas.xmlsoap
    .org/soap/encoding/"/gt   
  • ltSOAP-ENVBodygt
  • ltmGetLastTradePriceResponse
    xmlnsm"Some-URI"gt
  • ltPricegt14.5lt/Pricegt
  • lt/mGetLastTradePriceResponsegt
  • lt/SOAP-ENVBodygt
  • lt/SOAP-ENVEnvelopegt

78
Références
  • http//www.w3.org
  • http//www.commentcamarche.net/internet/http.php3
  • http//www.cookiecentral.com
  • http//www-mrim.imag.fr/ressources/docPHP4_v4c/man
    uel_toc.html
  • http//www.apl.jhu.edu/hall/java/Servlet-Tutorial
    /
  • Cours de Master STIC Programmation et sécurité du
    Web, Philippe Poulard http//disc.inria.fr/perso
    /philippe.poulard/cours/master
  • Fabrice.Huet_at_sophia.inria.fr Licence Miage
    2005-2006
Write a Comment
User Comments (0)
About PowerShow.com