Escolar Documentos
Profissional Documentos
Cultura Documentos
Michel RIVEILL
Université de Nice – ESSI
Email : riveill@unice.fr
(d’après des transparents de Didier DONSEZ – Univ. de Valencienne)
Au sommaire
n Historique
n Le protocole HTTP
n Les méthodes GET et POST
n Les Cookies
n Les Serveurs HTTP
n Autour d ’HTTP
Le Protocole HTTP
n HTTP : HyperText Tranfert Protocol (RFC 1945 et 2068)
n protocole de rapatriement des documents
n protocole de soumission de formulaires
n Principe de fonctionnement
n très simple en HTTP/1.0
n connexion
n demande (GET) d ’un document
n renvoi du document (status=200) ou d ’une erreur
n déconnexion
n Protocole en mode de lignes de caractère
n telnet www.sun.com 80
n Possibilité de dialogue plus complexe en cas d ’identification
n série de plusieurs requêtes avec une connexion
n Connexion « KeepAlive » de HTTP/1.1 (RFC 2068)
Dialogue HTTP
exemple de récupération d ’un document par la méthode POST /script
doc.htm
Entête de la
Port 80
requête Client HTTPD
Méthodes de la requête
n GET
n demande pour obtenir des informations et une zone de données concernant l ’URI
n HEAD
n demande pour seulement obtenir des informations concernant l ’URI
n POST
n envoie de données (contenu du formulaire vers le serveur, …). Ces données sont
situées après l ’entête et un saut de ligne.
n PUT
n enregistrement du corps de la requête à l ’URI indiqué
n DELETE
n suppression des données désignées par l ’URI
n LINK / UNLINK
n association (et désassociation) des informations
de l ’entête au document sur le serveur
n OPTIONS
n demande des options de communication disponibles
n TRACE
Format de la réponse
n Réponse envoyé par le serveur au client
HTTP/<Version> <Status> <Commentaire Status>
Content-Type: <Type MIME du contenu>
[< Champ d ’entête >: <Valeur>]
[<tab><Suite Valeur si >1024>]
Ligne blanche HTTP/1.0 200 OK
Date: Wed, 02Feb97 23:04:12 GMT
Document Server: NCSA/1.1
MIME-version: 1.0
Last-modified: Mon,15Nov96 23:33:16 GMT
Content-type: text/html
Content-length: 2345
* une ligne blanche *
<HTML><HEAD><TITLE> …
</BODY></HTML> 7
11
13
15
17
Internationalisation
n Language Accept
n fr, de, it, en, sq (albanais), ru, (russe), ja (japonais),
zh (chinois), el (grec), he (hébreu), ca (catalan) ...
n Charset (table de caractère)
n par défaut ISO-8859-1 (Latin-1)
n ISO-8859-2 (hongrois, albanais, …)
n ISO-8859-4
n ISO-8859-5, KOI8-R (russe, bulgare, polonais)
n ISO-8859-7 (grec)
n ISO-8859-8 (hébreu)
n ISO-8859-9 (turc)
n Shift_JIS, ISO-2022-JP, EUC-JP (japonais)
n Big5 (chinois simplifié)
n GB2312(chinois traditionnel - Taiwan)
Récupération d ’un Document
Méthode GET
GET /doc.htm
Client HTTPD
script
port
80 machX
le Client envoie
POST /script HTTP/1.0
Accept: www/source le Serveur répond
Accept: text/html HTTP/1.0 200 OK
Accept: image/gif …
User-Agent: Lynx/2.2 libwww/2.14 Content-length: 2345
From: alice@pays.merveilles.net * une ligne blanche *
* une ligne blanche * <HTML><HEAD><TITLE> ...
name1=value1&
name2=value2
21
23
Requête Multi-parties
(multipart)
n Motivation
n Requête multi-document [RFC1867]
n formulaire HTML contenant des Upload de fichiers
n <FORM ACTION="/servlet/UploadTest" ENCTYPE="multipart/form-data"
METHOD=POST>
n Your name? <INPUT TYPE=TEXT NAME=submitter> <BR>
n Your first file to upload? <INPUT TYPE=FILE NAME=file1> <BR>
n Your second file to upload? <INPUT TYPE=FILE NAME=file2> <BR
n <INPUT TYPE=SUBMIT>
n </FORM>
n Remarque : Mail multi-documents
n (fichiers attachés, mail enrichi d ’images, audio-mail …)
Requête Multi-parties (multipart)
Codage de la requête
Une chaîne tirée aléatoirement sert de séparateur
Content-Type : multipart/form;boundary=End9989822
--End9989822
Content-Disposition; form-data; name="file1"; filename="test.htm"
Content-Type : text/html
Réponse Multi-parties
n Codage
n Content-Type : multipart/x-mixed-replace;
n Frontière entre les parties
n Déclaration : boundary=chaîne_aléatoire
n Séparateur : --chaîne_aléatoire
n Comportement
n le navigateur affiche le sous-document suivant dès qu ’il
commence à le recevoir après avoir effacer la fenêtre.
n Voir [Hunter ex6-12 p193]
Réponse Multi-parties
Exemple
Content-Type : multipart/x-mixed-replace;boundary=End65577565679001838
Le serveur définit une chaîne
ligne blanche séparateur des documents
--End65577565679001838
Content-Type : text/html
ligne blanche
<HTML><BODY><H1>Trois … </H1><BODY></HTML> Le serveur attend 1 seconde
--End65577565679001838 avant de renvoyer la suite :
le client affiche « Trois… »
Content-Type : text/html
ligne blanche
<HTML><BODY><H1>Deux … </H1><BODY></HTML> Le serveur attend 1 seconde
--End65577565679001838 avant de renvoyer la suite :
le client affiche « Deux… »
Content-Type : text/html
ligne blanche
<HTML><BODY><H1>Un … </H1><BODY></HTML> Le serveur attend 1 seconde
--End65577565679001838 avant de renvoyer la suite :
le client affiche « Un…»
Content-Type : text/html
ligne blanche Le serveur clôt la connexion TCP/IP
<HTML><BODY><H1>Partez ! </H1><BODY></HTML> avant de renvoyer la suite :
--End65577565679001838 le client affiche finalement « Partez !»
27
29
Suivi de Session
n une entrée HIDDEN par formulaire (ii)
n Inconvénients
n dialogue uniquement par formulaire
n car pas de persistance de l'identifiant côté client
n Limites
n URL générée par un script (=>programmation)
n ou parsing des documents HTML retournés
n mais disfonctionnement en présence de scripts JavaScript ou VBScript
générant eux aussi des URL !
33
Suivi de Session
37
Divulgation d ’informations
personnelles
Echange P3P
39
41
HTTP-NG SMUX
n Problématique de SMUX
n HTTP : protocole très lié à TCP/IP
n Consommation des ressources (réseaux, proxy, serveurs)
n Plusieurs connexions HTTP par document
n document + inclusions : images, applets, …
n Insuffisance des connexions «KeepAlive» de HTTP/1.1
n reste sérielle, force les navigateurs à « paralléliser »
n évite les reformatages pour les images de dimensions
inconnues
n Multiplexage
n niveau couche transport
n TCP et Non TCP
Négotiation du Contenu
(Content Negociation)
n To serve either the RDF version or the complete image using existing browsers
and tools, the best way was to use Content Negotiation. Of course, that doesn't
exclude the use of other techniques, such as HTTP extensions, to be able to
retrieve and store metadata in a better way.
n Using Content Negotiation has two benefits: it will work right away with all text -
based browsers (lynx, emacs with emacsspeak, etc.) and the output can be
rendered directly by selecting, e.g., the title or the description from the RDF.
Also, an RDF crawler will be able to get all the descriptions of a collection of
photos to create a knowledge database, just by asking for the right MIME type.
n The rdf can be also fetch directly without doing Content Negotiation, just adding
the wanted mime type after ';' ex: foo.jpg;text/rdf
43
Didier DONSEZ
Université de Valenciennes
Institut des Sciences et Techniques de Valenciennes
donsez@univ-valenciennes.fr
Les clients HTTP
n Butineur ou Arpenteur Web (browser Web)
n Récupère un document puis « visualise » ce documen
n Sur station
n le tout premier : NCSA Mosaic
n Netscape Communicator
n MS Internet Explorer
n Javasoft HotJava
n NeoPlanet
n …
n Lynx (pour VT, Minitel 24x80), AvantGo, Pocket Explorer
n Palmares d ’utilisation
n MS IE 86.08%
n NS 33.43%
n Reste 0.5%
45
51
53
Configuration Apache
n Fichiers de configuration
n httpd.conf
n comportement de base
n port TCP/IP, journaux, keepalive, UID, virtualhost, proxy, ...
n srm.conf
n traitement des ressources locales lors des requêtes
n index, script, répertoire, AddType, AddIcon, Alias, DocumentRoot
n access.conf
n contrôle d ’accès global (ACF : access config file)
n mime.types
n table de correspondance
n suffixe fichier -> type MIME document
n Outil
n GUI : Vision (focus-array.com)
…
JavaServer (jserv.sun.com)
n Serveur HTTPD de SUN
n anciennement « Jeeves », écrit en Java
n Servlets
n Scripts serveur écrit en Java
n Servlets de Base : FileServlet, CGIServlet, …
n Remarque
n le bytecode d ’une servlet peut être téléchargé et executé
par la JVM du Serveur (dans un espace protégé ou non)
n JigSaw du W3C fonctionne suivant le même principe
55
Tomcat et Jserv
(java.apache.org)
n JServ : module d’extension Apache
n Démarre une JVM et invoque des servlets
n TomCat : serveur écrit en Java
n Utilisé dans le JSDK
n Configuration possible
Apache
Server
mod_xxx TomCat
(.dll, .so) Server
Client HTML mod_jserv HTML
(.dll, .so) servlet/jsp
HTML HTTP AJP12
Client HTML
servlet/jsp
HTML HTTP
Autour d ’HTTP
n Proxy
n seul point de passage entre le réseau d ’entreprise et l extérieur
n sécurité, firewall
n accès à des protocoles non implémentés par les clients Web : WAIS, …
n Cache
n soulager les accès externes (moins de bande passante)
n Miroir
n réplication d ’une base documentaire
n améliorer le temps de réponse, soulager le réseau
n Robot
n récupération online/offline d ’une arborescence de documents
n constitution d ’un miroir local
n Mise à jour de sites
n copie publique / copies de travail
n Portail
n Point d’accès centralisant à un ensemble de sources Web
n Embedded Web Server
n Serveur HTTP pour informatique enfouie et embarquée 57
Proxy
n Fonctions
n seul point de passage
entre le réseau d ’entreprise et l ’extérieur
n firewall, contrôler le profil d'utilisation
n accès à des protocoles non implémentés
par les clients Web
n WAIS
n Passerelle réseau de niveau applicatif
Navigateur Web Proxy Serveur WAIS
HTTP + HTML HTTP+HTML / WAIS Z35.50
Client HTTPD
fichier
port
80 machX
GET /ficX
GET http://machX/ficX HTTPD ficX
Proxy machX
Client
port
8080
HTTPD
cache ficY
GET http://machY/ficY GET /ficY
machP machY
Entreprise Internet
59
Cache Web
n But d ’un cache Réseau
n Usager
n Améliorer les performances du browser en utilisant les documents
présents dans le cache local
n ISP
n Soulager le réseau fédérateur en cachant les documents demandés par
les usagers du sous-réseau
n Provider Web
n Soulager les serveurs applicatifs
n Documents
n Textes (HTML, XML, ...) et Images fixes
n Flux Audio et Video
n têtes de réseau cable pour la Buffered-VOD
n Serveurs
Il fonctionne en mode Proxy
Cache Web ii
n Politique de remplacement de cache Web
n Least Recently Used (LRU) très populaire
n conserve la date du dernier accès
n Least Frequently Used (LFU)
n comptage du nombre de références
n éviction des documents les moins référencés
n LFU-Aging
n LFU + prise en compte de la durée de la présence dans le cache
n Greedy Dual-Size (GDS)
n prise en compte la taille
n GDS -Frequency (GDSF)
n GDS + prise en compte du nombre de référence
61
Oui
Non : le cache arrête la le cache se connexe au
le cache démarre la récupération
connexion avec le serveur serveur pour récupérer
Le document a t’il été modifié ?
et retourne au client l ’entête (méthode HEAD)
date de modification identique
le document caché
Oui
Miroir
n But
n Créer une copie miroir d ’un site (d ’une partie de site)
n accélère l ’accès au document
n diminue la contention d ’accès au site
n diminue le trafic global sur Internet
65
67
WebDAV (ii)
n Web Distributed Authoring and Versioning Protocol
n Ajout de nouvelles commandes HTTP
n PROPFIND
n retourne les propriétés
n PROPPATCH
n modifie les propriétés
n MKCOL
n crée une nouvelle collection
n COPY & MOVE
n copie ou déplace une ressource au sein d ’un espace de nommage
n LOCK & UNLOCK
n verrouille et déverouille un ressource
WebDAV (iii)
n Web Distributed Authoring and Versioning Protocol
n des Serveurs WebDAV
n MS IIS5
n mod_dav pour Apache
n www.webdav.org/mod_dav
n CyberTeams ’ Web Site Director
69
Portail (i)
n Objectif
n Point d’accès centralisant un ensemble de sources d’information Web
n Intra-entreprise
n Contenu : Favorite links, Agenda, Mail, Incident, …
n Grand public
n Contenu : Info Bourse, Enchère, Météo, News Headline …
n Fonctionnalités
n Usagers Anomymes/Authentifiés
n Sécurisation (SSL, X509, cookie …)
n Personnalisé
n en fonction de l’usager, de son role, de son emplacement géographique, …
n Personnalisable(Self-Service)
n Composition dynamique (utilisation d’assistants, …)
n Multi-Accès (PC, Téléphone Cellulaire, PDA, …)
n Outils
n Oracle Portal, NetPortal, WebPortal, iPlanet Portal, Apache JetSpeed, …
Portail (ii)
n Présentation
n 1 page d’accueil composite -> N onglets -> M zones (div, layer, frame, card, …)
n iconifiable, agrandissement/réduction, ajout/retrait, …
n Développement
n Notion de PortLet : représente une source de données à placer dans la page
n Nouveau metier : provider de PortLet
Portal Server
n Représentation de la carte
n hyperbolique, cible 2D, …
n Outils et sites
n www.semio.com, www.acetic.fr, www.umap.com, ...
73
Rapports d ’audience
n Pourquoi faire : suivi et analyse de l ’activité du site
n webmaster : dimensionner le système (période de charge)
n commercial : pister le client dans sa navigation
n investisseur : le rassurer avant l ’introduction en Bourse ;-)
n publicitaire : fixer le prix des bandeaux publicitaires
n Comment
n à partir des journaux du serveur HTTP (access.log)
n externalisation
n société tierce « indépendante » proposant des rapports « normalisés »
(Exemple : www.estat.com, ...).
n chaque page à tracer contient une image transparente de 1x1 pixel qui
est chargée depuis la société tierce. La société tierce comptabilise les
chargements.
n <IMG SRC="http://www.tierce.com?idcust=190874+doc=/product/index.htm ">
Rapports d ’audience
Exemple
n Rapport d ’audience de www.estat.com
75
La Personnalisation
n Motivations
n Les usagers d ’un site ont des goûts et des besoins différents
n La personnalisation tente d ’offrir à l ’usager une interface correspondant
le plus possible à ses goûts et ses besoins
n Solutions
n Analyse (E-Analytics)
n Analyse des navigations précédentes de l ’usager
n Net Perceptions, Accrue Software, NetGenesis Corp
n Personnalisation sur règles (Rules-based Personalization)
n Création des pages personnalisées à la volée en fonction de régles
n BroadVision, Vignette Corp.
n Filtrage collaboratif (Collaborative Filtering)
n similarité entre utilisateurs : comportement de groupes
n Net Perceptions, Macromedia, Be Free
Test de performance / charge
n Motivation
n Vérification du niveau de charge supporté avant la mise en production
n Simulateur de charge
n 1à N clients en parallèle qui émulent M Web surfing sur le site
n Remarque : Mêmes outils pour les attaques DoS (Deny-Of-Service) et
Distributed DoS
n Benchmark
n TPC-W http://www.tpc.org (voir Cours Benchmarks BD)
n WebMark : orienté requête HTTP/GET sur des documents statiques
n SPECWeb : http://www.spec.org/osg/web96/workload.html
n Analyse et diagnostique de la charge
n Détecter quel composant (HTTPD, EJB, MT, SGBD, Mailhost, …)
crée l’embouteuillage (bottleneck)
n Outils
n Apache JMeter, Rational SiteLoad, …
77
Disponibilité (Avaibility)
n Motivations
n Performance
n Améliorer/garantir les temps de réponse
n Exigé par des portails (vers votre service) comme Yahoo
n QoS pour différentes classes d’usagers (gold, silver, …)
n Évolution incrémentale de la ferme (parc) de serveurs
n Disponibilité
n Tolérance aux pannes
n Différents niveaux de disponibilité
n fonctionnement dégradé en cas de panne
n Le serveur Europe reçoit les requêtes des clients français
n Voir:
n V. Cardellini, M. Colajanni, P.S.Yu, Dynamic Load Balancing on Web-
Server Systems, IEEE Internet Computing, May-June 1999, pp28-39
Répartition de Charge
n Architecture
n Un serveur de répartition de charge
n Une ferme de serveurs Web
100 Serveur
Client WWW Œ Œ WWW
Gold France Gold France
10000 Serveur
Client WWW Ž Ž
WWW
Allemagne Europe
79
Information sur la charge et les pannes
Disponibilité
n Cas d’une panne
n Les clients français sont servis par le serveur Europe
n La panne peut être détectée par des pings réguliers !
Serveur
Client WWW Œ Œ WWW
Gold France Gold France
Serveur Serveur
Client WWW • de Répartition WWW
France de Charge • France
83
1- GET /cgi/search?q=donsez
Indexeur
2- Liste de ref Copie FullText
Client 3- GET ref Serveur Publiée
HTML HTTPD Mise Index en
Index
4- ref à Jour Génération
Les Moteurs d ’Indexation (ii)
n Indexeurs (gratuit ou payant)
n FreeWAIS, Glimpse, ht://Dig, Harvest, AltaVista, Verity Search, AIRS, Basis,
Oracle Context , Doris-Floras, RetrievalWare, Virage, QBIC …
n Caractéristiques
n Indexation incrémentale vs totale
n l ’ajout d ’un document au corpus ne nécessite pas
de reconstruire l ’index
n Types de document indexés
n Texte, Texte structuré
n Multimédia : Images, Sons, Vidéo (MPEG7), Monde 3D …
n Formats de document analysés
n HTML, XML, PDF, Word/RTF, GIF, JPEG, MPEG, ...
n Bibliographie
n C. Leloup, “Moteurs d'Indexation et de Recherche”, Ed. Eyrolles, 1998, ISBN 2-
212-08976-7
n Livre OReilly sur WAIS
85
n java.net.URLConnection
n java.net.HttpURLConnection
n java.net.JarURLConnection
n Exemple
<HTML><HEAD>
<META HTTP-EQUIV="Refresh" CONTENT="3; URL= http://newsite.mycomp.com ">
</HEAD><BODY>
<H1> This site moves to <A HREF=" http://newsite.mycomp.com "> http://newsite.mycomp.com </A></H1>
</BODY></HTML>
87
WAP et WML
n Motivation
n Adapter HTTP et HTML aux « handsets » nomades
n Affichage limité, contrôle limité (i.e. clavier, pointage, …)
n Débit limité et coût de communication
n WAP Wireless Application Protocol
n protocole HTTP « like » et « light »
n Utilise les couches réseaux des réseaux cellulaires (à la place d ’IP)
n Utilise la sécurité des réseaux cellulaires
n WML Wireless Markup Language
n langage hypertextuel adapté aux handsets nomades
n basé sur XML/DTD : il existe un format plus compact (bytecodé)
n voir www.wapforum.org et le cours sur WAP et WML
WAP
Architecture Réseau
WML/HTTP
Serveur
WML/WAP WWW
Passerelle WML/HTTP
WAP
Filtre
HTML
HTTP Serveur
Réseau GSM Internet WWW
WML/WAP
Filtre HTML
WML/WAP ProxyWAP HTTP Serveur
Serveur WWW
TeleVAS
WML/WAP
WAP
Handsets 89
WML
Exemple : les prévisions météo
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="card1" title="Weather Forecast">
<p>
<table columns="3" align="LCC">
<tr><td>Date</td><td>F'cast</td><td>T °C</td></tr>
<tr><td>M 6/7</td><td><img src="rainy.wbmp" alt="rain"/></td>
<td>25°C</td></tr>
<tr><td>T 6/8</td><td><img src="partcldy.wbmp" alt="part cldy"/>
</td><td>27°C</td></tr>
<tr><td>W 6/9</td><td><img src="cloudy.wbmp" alt="cloudy"/></td>
<td>24°C</td></tr>
<tr><td>T 6/10</td><td><img src="rainy.wbmp" alt="rainy"/></td>
<td>28°C</td></tr>
<tr><td>F 6/11</td><td><img src="sunny.wbmp " alt="sunny"/></td>
<td>29°C</td></tr>
</table>
</p>
</card>
Bibliographie
n Beaucoup de Guides, Tutoriels, Manuels
n http://ds.internic.net/rfc/rfc2068.txt
n http://www.w3.org
n http://search.yahoo.fr/search/fr?p=HTTP
n Des livres
n Attention, ca change très vite !
91
Bibliographie - HTTP
n Stephen Spainhour & Robert Eckstein, « Webmaster in a Nutshell », 2nd
Edition, June 1999 (est.), ISBN 1-56592-325-1, Ed : O'Reilly
n très complet
n Robert Orfali, Dan Harkey, « Client/Server Programming with Java and
Corba », 2ème édition, 1998, Ed Wiley, ISBN 0-471-24578-X. voir les
chapitres 11 et 12
n compare HTTP à Corba
n Clinton Wong, « Programmation de clients Web avec Perl », Ed Oreilly,
1997, ISBN 2-84177-050-8
n l ’automatisation de requêtes sur HTTP (en Perl) Revues
93