Transcript Document
Université
De Boumerdes
Université
De Limoges
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
Le W3C
Architecture et logiciels pour le web
Clients web
Serveurs web
Proxy Cache
CDN
HTTP
Technologies côté clients
HTML
CSS
JavaScript
Applets
Plan
Technologies côté serveur
Cookies
CGI
PHP
ASP/ASP.NET
Servlets et JSP
Moteurs de recherche et Web Services
Brève présentation d’Internet
et du www
Histoire d’Internet
1962: étude pour la création d’un réseau pour commander
l’infrastructure nucléaire américaine capable de résister a une
attaque nucléaire
Choix d’un réseau par commutation de paquets
1969: construction du premier réseau physique (4 machines, 5
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 d’Usenet
1982: TCP/IP devient le standard d’Internet
1983: Création du Domain Name System
Histoire d’Internet
1986: création de l’IETF
1990: création d’un 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 disponib
sous licence open source
2002: Mozilla 1.0
2004: début de la deuxième guerre des browsers
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: s’assurer que de nouvelles technologies peuvent être
ajoutées au web.
Standardisation: donner des Recommandations décrivant les
technologies du web.
W3C – Domaines d’activité
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 l’accés à l’information des personnes
handicapées
Architecture et logiciels pour le web
Réalisé par : Mr RIAHLA
2008/2009
Fonctionnement du web
Client
Serveur
Web
Client
Proxy
Cache
Client
Les clients web
Variété des plateformes
Windows, Unix, PDA…
Variété des logiciels
IE, Firefox, Mozilla, Opera, Lynx…
Caractéristiques
Gestion d’HTML/XHTML
Gestion de CSS
Gestion de JavaScript
Gestion de plugins
Répartition des clients web
Source:
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%
http://www.w3schools.com/browsers/browsers_stats.asp
Étapes pour la visualisation d’une
page web
L’utilisateur entre une URL
Le client web effectue une résolution DNS pour avoir
l’adresse du serveur
Il effectue la requête http et reçoit un document
Il analyse le document pour
Préparer l’affichage
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
Serveurs Web
Programmes répondant aux requêtes des clients web
Souvent appelé serveur http ou httpd
Écoute sur le port 80 (convention) d’une 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
Parts de marcher des serveurs
(74 572 794 sites)
Apache: 70.98%
Microsoft IIS : 20.24%
Source: http://www.netcraft.com/
•
•
Sun : 2.52%
Zeus : 0.78%
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 s’appliquent à l’ensemble du serveur
Leur portée peut-être limitée avec des sections
<Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>,
<LocationMatch>, <VirtualHost>
Apache – Restriction d’accés
Directives Allow,Deny
from all
from www.xxx.yyy.zzz
from unice.fr
Peut spécifier un ordre pour les directives d’accé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
Apache – Virtual Host
Permet d’avoir plusieurs serveurs sur une même machine
Virtual Host basé sur IP
Utilise l’IP 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 *
<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain
</VirtualHost>
<VirtualHost *>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>
http://httpd.apache.org/docs/vhosts/name-based.html
Le proxy cache
Pourquoi demander plusieurs fois la même chose à un serveur?
Certains clients web ont un cache personnel à l’utilisateur. Le proxy travaille
au niveau d’un domaine (ensemble de clients).
Les clients demandent au proxy, le proxy demande au serveur
Améliore la réactivité
Diminue la charge d’un serveur
Diminue l’utilisation 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 d’une nouvelle copie si Pragma: nocache
Le proxy cache
Fonctionnalités avancées
Interdire l’accès au web a certaines heures/personnes
Limiter l’accès à certains sites
Changer le contenu (supprimer les images, ajouter des
informations…)
Qu’est-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
Routage de contenu
Donner au client le contenu disponible à l’endroit le plus
approprié
Plusieurs métriques
Proximité au sens réseau
Proximité géographique
Temps de réponse
Type d’utilisateur (payant…)
HTTP
(Vue dans le cours précédent)
Types MIME
Multipurpose Internet Mail Extension
Originellement pour le mail, maintenant utilisé par http
Permet d’indiquer 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 d’encodage utilisé
Content-Type: champs type/soustype
Types MIME communs
image/jpeg
text/plain
video/mpeg
Architecture Client-Serveur
pour le Web
Client
Serveur
CGI
HTML
XHTML
CSS
Applets
Java
ActiveX
ASP
PHP
JSP
Servlet
Java
JDBC/
ODBC
Serveur
BD
Technologies coté client
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
<balise> … </balise>
Actuellement disponible dans la version 4.0
Amélioration de l’accessibilité
Meilleur séparation de la structure et de la présentation
Support des frames
Tables avancées
Successeur: XHTML
Exemple de document HTML
<!DOCTYPE HTML PUBLIC " -//W3C/DTD HTML 4.01
Transitional//EN" "http://www/w3.org/TR/html4/strict.dtd" >
<HTML>
<HEAD>
<TITLE> Document HTML </TITLE>
</HEAD>
<BODY>
<P> Test
</BODY>
</HTML>
HTML
Un document HTML commence par un entête
<!DOCTYPE HTML PUBLIC " -//W3C/DTD HTML 4.01
Transitional//EN" "http://www/w3.org/TR/html4/strict.dtd" >
Il indique quelle version d’HTML 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 <HTML> </HTML>
HTML (HEAD)
Les balises <HEAD> </HEAD> 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 <TITLE> dans la section <HEAD>
Des Meta-Data sont optionnelles
<META name="Auteur" content="Fabrice Huet">
Certaines Meta-Data servent aux moteurs de recherche
<META name="keywords" lang="fr" content="Argent Rapide ">
HTML (BODY)
Le corps du document se trouve entre <BODY> </BODY>
Autrefois possible de spécifier des informations de rendu visuel
background (image de fond)
text (couleur du texte)
link (couleur d’un lien)
vlink (couleur d’un lien visité)
alink (couleur d’un lien sélectionné)
Maintenant deprecated, utiliser des feuilles de style
HTML (BODY)
Headings
Décrit brièvement le contenu ou le sujet d’une section
Dans un browser, change la taille de la police
6 niveaux, de H1 (plus important) à H6 (moins important)
<H1> Elephant </H1> <H6> Souris </H6>
Paragraphes
Permet d’indiquer un paragraphe
<P> sans balise fermente
Retour à la ligne
<br>
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
<UL>
<LI> Première information
<LI> Deuxième information
</UL>
Listes ordonnées
<OL>
<LI> Première information
<LI> Deuxième information
</OL>
HTML (BODY)
Listes descriptives
<DL>
<DT> Première <DD> information
<DT> Deuxième <DD> information
</DL>
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 <TR> sans fermeture
Cellule
Élément <TH> pour l’entête d’une cellule
Élément <TD> pour le contenu
HTML (BODY)
Liens et ancres:
Permet de relier une ressources à une autre
Chaque lien a 2 ancres et une direction
Il part de l’ancre source et va à l’ancre destination
Création de lien
Balise <A> … </A>
Attribut href pour indiquer une source
Attribut name pour indiquer une destination
Attribut title pour donner des informations (tooltip, son…)
<A href="http://www-sop.inria.fr/"> INRIA Sophia Antipolis</A>
<A name="ancre"> Voici une ancre accessible avec #</A>
<A href="….#ancre"> On va a l’ancre</A>
HTML (BODY)
On peut mettre href et name ensembles
Les ancres doivent être uniques dans un document!
Objets, Images, Applets:
Avant, utilisation de <IMG> et <APPLET>
Limités à l’existant (comment gérer les nouveaux média)
Applet était seulement pour les applets Java
Problème de l’accessibilité
Tout est remplacé par <OBJECT> mais <IMG> est toujours valide
HTML (BODY)
Inclusion d’image par <IMG>
On indique la localisation de l’image
Une description courte alt
Une description longue longdesc (optionnel)
<IMG src="toto.png" alt="la photo de toto">
Inclusion d’image par <OBJECT>
<OBJECT data="toto.png" type="img/png">
la photo de toto
</OBJECT>
Pour les applets, plus tard…
HTML (FRAME)
•
Frames
– Offre plusieurs vues de documents
– Permet de maintenir des informations fixes et d’autres temporaires
– On remplace <BODY> par <FRAMESET>
– On spécifie le nombre de lignes (rows) et de colonnes (column)
<FRAMESET rows="30%, 70%" cols="50%, 50%">
…..
</FRAMESET>
– Les frames peuvent être imbriquées
– Elles peuvent être nommées pour devenir la cible de liens
– Un contenu alternatif peut être donné avec <NOFRAMES>
HTML (FRAME)
• Problèmes:
– Les frames définissent un rendu visuel, pas une structure
– Les frames n’ont pas d’URI
– La vue d’une page avec frames est déterminé par une séquence de
navigation et non plus une unique action
HTML (FORMS)
Les forms permettent d’ajouter de l’interactivité
L’interaction se fait à travers des objets control:
buttons
checkboxes
radio buttons
menus
text input
file select
hidden controls
objects controls
Utilisation d’une balise <FORM> … </FORM>
2 méthodes, POST et GET
HTML (FORMS)
<FORM action="http://somesite.com/prog/adduser" method="post">
<P>
First name:
<INPUT type="text" name="firstname"><BR>
Last name:
<INPUT type="text" name="lastname"><BR>
email: <INPUT type="text" name="email"><BR>
<INPUT type="radio" name="sex" value="Male"> Male<BR>
<INPUT type="radio" name="sex" value="Female"> Female<BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</P>
</FORM>
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 d’une 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
CSS
Cascading Style Sheets (http://www.w3.org/TR/CSS21/)
Famille des styles
Décrit comment un document est présenté à l’écran
Permet d’ajouter un style (font, couleur…) à une page web
CSS1 et CSS2 dispo, CSS3 en préparation
Une feuille de style se place dans la balise <HEAD>
<HEAD>
<style type= "text/css">
….
</style>
</HEAD>
<HEAD>
<link rel="stylesheet" type="text/css" href="{fichier.css}">
</HEAD>
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 l’aspect 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
CSS
Exemple: appliquer un style a l’élément body (i.e. tout le
document)
<HEAD>
<style type= "text/css">
body {
color: purple;
background-color: #d8da3d
}
</style>
</HEAD>
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é n’importe où dans la page
<script type="text/javascript"> xxxxxxx </script>
<script src="xxx.js"></script>
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
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
Javascript – Hiérarchie d’objets
Javascript – Objets par défaut
navigator
Contient le nom et la version du navigateur, les plugins installés…
window
Propriétés qui s’appliquent à la fenêtre tout entière
document
Propriétés sur le contenu du document (titre, couleur…)
location
URL actuelle
history
URLs visitées
Javascript – Exemples
Affichage de la valeur
d’une variable
<html>
<head>
</head>
<body>
<script type="text/javascript">
var browserName=navigator.appName;
if (browserName=="Netscape") {
alert("Hi Netscape User!");
}
</script>
</body>
</html>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var name = "Hege"
document.write(name)
document.write("<h1>"+name+"</h1
>")
</script>
</body> </html>
Détection du nom du
navigateur
Javascript – Aujourd'hui
ExtJs
Jquerry
Ajax
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 l’exécute localement
L’applet s’exé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 d’autres machines que celle dont elle
est originaire
Crée un ClassLoader
…..
On peut s’affranchir de ces limitations en signant les applets
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 d’exécution temporaire
Méthode stop()
Fin d’exécution définitive
Méthode destroy()
Il est possible de surcharger ces méthodes pour changer les
comportements par défaut
Technologies côté serveur
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 d’expiration
Chemin de validité
Domaine de validité
Attribut de sécurité (si secure, alors SSL)
CGI
Common Gateway Interface
Permet l’exé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
Les plus utilisés sont Perl, C, C++, Java…
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
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
PHP
PHP vient avec une énorme librairie de fonctions
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.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.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)
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:
<? code php ?>
<?php code php ?>
<?PHP code php ?>
<SCRIPT LANGUAGE="php"> code php </SCRIPT>
Les instructions sont séparées par ‘;’
PHP
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?>
</body>
</html>
Exécution par le serveur
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
PHP
On peut interfacer facilement PHP et les forms HTML
<form action="action.php" method="post">
<p> Your name: <input type="text" name="name" /> </p>
<p> Your age: <input type="text" name="age" />
</p>
<p> <input type="submit" />
</p>
</form>
Hi <?php echo $_POST['name']; ?>.
You are <?php echo $_POST['age']; ?> years old.
Hi Joe. You are 22 years old.
Client
Serveur
Client
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…)
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 l’extension .jsp
Servlets et JSP
Pour développer: Java Servlet Development Kit (JSDK)
Nécessite l’ajout d’un 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.
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
JSP - Exemples
<HTML>
<BODY>
Salut! La date est <%= new java.util.Date() %>
</BODY>
</HTML>
<HTML>
<BODY>
<%
out.println(« On cherche la date »);
java.util.Date date = new java.util.Date();
%>
Salut! La date est <%= date %>
</BODY>
</HTML>
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");
}
}
Moteurs de recherche et Web
Services
Moteurs de recherches
Permettent de trouver de l’information sur le web
Indexent régulièrement des sites pour construirent une base de données
(possibilité de l’empêcher avec le fichier robots.txt)
Une recherche se fait dans la base de données
important d’avoir 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 d’un indice de réputation
3eme génération: utilisation des habitudes de recherche et meilleure
extraction d’informations contextuelles
Google et PageRank
Google est un moteur de 2eme génération
Utilise l’algorithme PageRank pour déterminer l’adéquation d’une
page à la demande
PageRank est un indice de l’importance d’une page web
Chaque lien sortant est un « vote » pour une page
Plus une page a de votes, plus elle est importante
Variation de l’algorithme
Élimination des liens venant de « link farms »
Diminution de l’importance d’un vote suivant la cible
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?
WSDL
Web Service Description Language
Fichier XML
<definitions> contient la description des services
<portType> groupe de méthode exposées
<operation> méthode exposée
<input> paramètre
<output> valeur de retour
<message> description du paramètre
WSDL - Exemple
<definitions name="MobilePhoneService" …… >
<portType name="MobilePhoneService_port">
<operation name="getPrice">
<input message="PhoneModel"/>
<output message="PhoneModelPrice"/>
</operation>
</portType>
<message name="ListOfPhoneModels">
<part name="models" type="tns:Vector">
</message>
<message name="PhoneModel">
<part name="model" type="xsd:String">
</message>
<message name="PhoneModelPrice">
<part name="price" type="xsd:String">
</message>
</definitions>
UDDI – SOAP
Universal Description, Discovery and Integration
Annuaire d’informations (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
SOAP - Exemple
HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" ContentLength:nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
"/>
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>14.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Références
http://www.w3.org
http://www.commentcamarche.net/internet/http.php3
http://www.cookiecentral.com
http://wwwmrim.imag.fr/ressources/docPHP4_v4c/manuel_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
[email protected] Licence Miage 2005-2006