Vous êtes sur la page 1sur 47

Le protocole HTTP

Michel RIVEILL Universit de Nice ESSI Email : riveill@unice.fr


(daprs des transparents de Didier DONSEZ Univ. de Valencienne)

Au sommaire
n n n n n n

Historique Le protocole HTTP Les mthodes GET et POST Les Cookies Les Serveurs HTTP Autour d HTTP

Le Protocole HTTP
n

HTTP : HyperText Tranfert Protocol (RFC 1945 et 2068)


n n

protocole de rapatriement des documents protocole de soumission de formulaires


trs simple en HTTP/1.0
n n n n

Principe de fonctionnement
n

connexion demande (GET) d un document renvoi du document (status=200) ou d une erreur dconnexion
n

Protocole en mode de lignes de caractre


telnet www.sun.com 80

Possibilit de dialogue plus complexe en cas d identification


n n

srie de plusieurs requtes avec une connexion Connexion KeepAlive de HTTP/1.1 (RFC 2068)
3

Dialogue HTTP
exemple de rcupration d un document par la mthode POST /script
Entte de la requte

doc.htm

Client

Port 80

HTTPD

le Client envoie la Requte


POST /script HTTP/1.0 mthode,chemin,version Accept: www/source documents accepts Accept: text/html le Serveur retourne la Rponse Accept: image/gif HTTP/1.0 200 OK ligne de status Accept: image/jpeg Entte de la rponse User-Agent: Lynx/2.2 libwww/2.14 Date: Wed, 02Feb97 23:04:12 GMT Server: NCSA/1.1 * une ligne blanche * MIME-version: 1.0 name1=value1& Last-modified: Mon,15Nov96 23:33:16 GMT name2=value2 Content-type: text/html type du document retourn Content-length: 2345 sa taille Corps de la Corps de la * une ligne blanche * requte rponse

Format de la requte
n

Envoy par le client au serveur


<Mthode> <URI> HTTP/<Version> [<Champ d entte>: <Valeur>] [<tab><Suite Valeur si >1024>] ligne blanche [corps de la requte pour la mthode POST]
GET /docu2.html HTTP/1.0 Accept: www/source Accept: text/html Accept: image/gif User-Agent: Lynx/2.2 libwww/2.14 From: alice@pays.merveilles.net * une ligne blanche * POST /script HTTP/1.0 Accept: www/source Accept: text/html Accept: image/gif User-Agent: Lynx/2.2 libwww/2.14 From: alice@pays.merveilles.net Content-Length: 24 * une ligne blanche * name1=value1& name2=value2

Mthodes de la requte
n

GET
n

demande pour obtenir des informations et une zone de donnes concernant l URI demande pour seulement obtenir des informations concernant l URI envoie de donnes (contenu du formulaire vers le serveur, ). Ces donnes sont situes aprs l entte et un saut de ligne. enregistrement du corps de la requte l URI indiqu suppression des donnes dsignes par l URI association (et dsassociation) des informations de l entte au document sur le serveur demande des options de communication disponibles

HEAD
n

POST
n

PUT
n

DELETE
n

LINK / UNLINK
n

OPTIONS
n

TRACE

Format de la rponse
n

Rponse envoy par le serveur au client HTTP/<Version> <Status> <Commentaire Status> Content-Type: <Type MIME du contenu> [< Champ d entte >: <Valeur>] [<tab><Suite Valeur si >1024>] HTTP/1.0 200 OK Ligne blanche 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>

Status des rponses HTTP


(RFC2068)
n

rponse donn par le serveur au client

Status de la requte
n

100-199
n

Informationnel Succs de la requte client Redirection de la Requte client Requte client incomplte Erreur Serveur

100 : Continue (le client peut envoyer la suite de la requte), ... 200: OK, 201: Created, 204 : No Content, ... 301: Redirection, 302: Found, 304: Not Modified, 305 : Use Proxy, ... 400: Bad Request , 401: Unauthorized, 403: Forbidden, 404: Not Found 500: Server Error, 501: Not Implemented,

200-299
n

300-399
n

400-499
n

500-599

Enttes HTTP
n

4 types de champs d entte


n

Gnral
n

commun au serveur, au client ou HTTP formats de documents et paramtres pour le serveur information concernant le serveur informations concernant les donnes changs

Requte du client
n

Rponse du serveur
n

Entit
n

Enttes Gnrales dHTTP


n n

Cache-Control = contrle du caching. Connection = listes d option


n

close pour terminer une connexion.

n n n n

n n

Date = date actuelle (format RFC1123 mais aussi RFC850). MIME-Version = version MIME utilis. Pragma = instruction pour le proxy. Transfer-Encoding = type de la transformation applique au corps du message. Upgrade = indique le protocole soutait. Via = utilis par les proxys pour indiquer les machines et protocoles intermdiaires.

Enttes de requtes client HTTP


n n

Accept = type MIME visualisable par l agent Accept-Encoding = mthodes de codage acceptes
n

compress, x-gzip, x-zip

n n

Accept-Charset = jeu de caractres prfr du client Accept-Language : liste de langues


n

fr, en, BASIC nom:mot de passe (en base64) donc transmis en clair !!! NB : Pralablement le serveur a rpondu un WWW-Authenticate

Authorization = type d autorisation


n n n

Cookie = cookie rtourn

11

Enttes de requtes client HTTP


n

From = adresse email de l utilisateur


n

rarement envoy pour conserver l anonymat de l utilisateur un serveur peut hberger plusieurs serveurs la page n est transfre que si elle a t modifie depuis la date prcise. Utilis par les cachs indique si le document demand peut tre cach ou pas.

Host = spcifie la machine et le port du serveur


n

If-Modified-Since = condition de retrait


n

n n n n

If-Unmodified-Since = condition de retrait If-Match = condition de retrait If-None-Match = condition de retrait If-Range = condition de retrait

Enttes de requtes client HTTP


n n n

Max-Forwards = nombre max de proxy Proxy-Authorization = identification Range = zone du document renvoyer
n

bytes=x-y (x=0 correspond au premier octet, y peut tre omis pour spcifier jusqu la fin) page contenant l ancre partir de laquelle le visualisateur a trouv l URL.

Referer = URL d origine


n

User-Agent = modle du visualisateur

13

Enttes des rponses serveur HTTP


n n n n n

Accept-Range = accepte ou refus d une requte par intervalle Age = anciennet du document en secondes Proxy-Authenticate = systme d authentification du proxy Public = liste de mthodes non standards gres par le serveur Retry-After = date ou nombre de secondes pour un ressai en cas de code 503 (service unavailable) Server = modle de HTTPD
n

utilis par Satan !!!!

n n n

Set-Cookie = crer ou modifie un cookie sur le client Vary = l entit possde plusieurs sources Warning = informations supplmentaire du code d tat
n

14 Transformation applied : le proxy a chang de Content -Type ou le Content -Encoding

WWW-Authenticate = systme d authentification pour l URI

Enttes d entit HTTP


n n

Allow = mthodes autorises pour l URI Content- Base = URI de base


n

pour la rsolution des URL Utilis par les caches utilis par le client pour gauger la progression des chargements compress, x-gzip, x-zip fr, en ... quand l URI est plusieurs endroits

Last-Modified = date de dernire modification du doc.


n

Content- Length = taille du document en octet


n

Content- Encoding = type encodage du document renvoy


n

Content- Language : le langage du document retourn


n

Content- Location : URI de l entit


n

15

Enttes d entit HTTP


n n

Content-MD5 : rsum MD5 de l entit Content-Range : position du corps partiel dans l entit
n

bytes x-y/taille

Content-Transfert-Encoding : transformation appliqu du corps de l entit


n

7bit, binary, base64, quoted-printable utilis par le client pour slectionner le visualisateur (plugin) RFC2045 7bit, binary, base64, quoted-printable

Content-Type = type MIME du document renvoy


n n

ETag : transformation appliqu du corps de l entit


n

Enttes d entit HTTP


n n n

Expires : date de premption de l entit Last-Modified : date de la dernire modification de l entit Location : URI de l entit
n

quand l URI est plusieurs endroits

n n n

URI : nouvelle position de l entit Refresh : 10 Refresh: 10; Location=/newloc.htm

17

Internationalisation
n

Language Accept
n

fr, de, it, en, sq (albanais), ru, (russe), ja (japonais), zh (chinois), el (grec), he (hbreu), ca (catalan) ... par dfaut ISO-8859-1 (Latin-1)
n n n n n n n n n

Charset (table de caractre)


n

ISO-8859-2 (hongrois, albanais, ) ISO-8859-4 ISO-8859-5, KOI8-R (russe, bulgare, polonais) ISO-8859-7 (grec) ISO-8859-8 (hbreu) ISO-8859-9 (turc) Shift_JIS, ISO-2022-JP, EUC-JP (japonais) Big5 (chinois simplifi) GB2312(chinois traditionnel - Taiwan)

Rcupration d un Document
Mthode GET
GET /doc.htm Client
le Client envoie

HTTPD port 80 machX

doc.htm

GET /doc.htm HTTP/1.0 mthode,chemin,version Accept: www/source documents accepts Accept: text/html le Serveur rpond Accept: image/gif User-Agent: Lynx/2.2 libwww/2.14 HTTP/1.0 200 OK ligne de status Date: Wed, 02Feb97 23:04:12 GMT From: alice@pays.merveilles.net Server: NCSA/1.1 * une ligne blanche * MIME-version: 1.0 Last-modified: Mon,15Nov96 23:33:16 GMT Content-type: text/html type du document retourn Content-length: 2345 sa taille * une ligne blanche * <HTML><HEAD><TITLE> ...
19

Soumission d un Formulaire
Mthode GET
GET /script?name1=value1&name2=value2 Client
le Client envoie

HTTPD port 80 machX

script

GET /script?name1=value1&name2=value2 HTTP/1.0 Accept: www/source documents accepts Accept: text/html le Serveur rpond Accept: image/gif User-Agent: Lynx/2.2 libwww/2.14 HTTP/1.0 200 OK ligne de status Date: Wed, 02Feb97 23:04:12 GMT From: alice@pays.merveilles.net Server: NCSA/1.1 * une ligne blanche * MIME-version: 1.0 Last-modified: Mon,15Nov96 23:33:16 GMT Content-type: text/html type du document retourn Content-length: 2345 sa taille * une ligne blanche *

Soumission d un Formulaire
Mthode POST
POST /script Client
le Client envoie POST /script HTTP/1.0 Accept: www/source Accept: text/html Accept: image/gif User-Agent: Lynx/2.2 libwww/2.14 From: alice@pays.merveilles.net * une ligne blanche * name1=value1& name2=value2

HTTPD port 80 machX

script

le Serveur rpond HTTP/1.0 200 OK Content-length: 2345 * une ligne blanche * <HTML><HEAD><TITLE> ...

21

Codage des paramtres


n

Les valeurs passes (URL et contenu des entres des formulaires) doivent tre sur 7 bits et sans caractres spciaux

Format d encodage : x-www-form-urlencoded


n n

Espace -> + Tous les caractres spciaux et accentus -> %code ascii
n n

%40 %e9

Les entres des formulaires sont encods dans une chane compose de paires (nom de l entre)=(valeur de l entre) spar par de &
n

nom=Dupont+Jean&adresse=3+rue+de+la+ Gait%e9%0a75014+Paris

il existe de nombreuses bibliothques d encodage/dcodage


n

dans le JDK :
n

static String java.net.URLDecoder.decode(String urlencoded)

Comportement du Client face au type du document retourn


n

A partir du type MIME de Content-Type


n

Visualisation native
n

la fonction de visualisation est dans le noyau (core) du client


n

text/html, image/jpeg

Visualisation par plugin


n n

la fonction est prsente dans un DLL, SO, ou un JAR elle est lie dynamiquement pour raliser la visualisation
n

world/vrml, text/tex

Visualisation externe
n n

la fonction n est pas prsente dans le client le client rapporte le document et le sauvegarde dans un fichier temporaire
n

video/mpeg, application/postscript

23

Requte Multi-parties (multipart)


n

Motivation
n

Requte multi-document [RFC1867]


n

formulaire HTML contenant des Upload de fichiers


n

n n n n n

<FORM ACTION="/servlet/UploadTest" ENCTYPE="multipart/form-data" METHOD=POST> Your name? <INPUT TYPE=TEXT NAME=submitter> <BR> Your first file to upload? <INPUT TYPE=FILE NAME=file1> <BR> Your second file to upload? <INPUT TYPE=FILE NAME=file2> <BR <INPUT TYPE=SUBMIT> </FORM>

Remarque : Mail multi-documents


n

(fichiers attachs, mail enrichi d images, audio-mail )

Requte Multi-parties (multipart)


Codage de la requte
Une chane tire alatoirement sert de sparateur
Content-Type : multipart/form;boundary=End9989822 --End9989822 Content-Disposition; form-data; name="file1"; filename="test.htm" Content-Type : text/html <HTML><BODY> Ceci est un fichier de test !</BODY></HTML> --End9989822 Content-Disposition; form-data; name="file2"; filename="test2.txt" Content-Type : text/plain Ceci est un deuxieme fichier de test ! --End9989822
n

Classes de manipulation (non standard)


n

voir [Hunter Ex4-18 p 107]


25

Rponse Multi-parties
n

Codage
n n

Content-Type : multipart/x-mixed-replace; Frontire entre les parties


n n

Dclaration : boundary=chane_alatoire Sparateur : --chane_alatoire

Comportement
n

le navigateur affiche le sous-document suivant ds qu il commence le recevoir aprs avoir effacer la fentre.
n

Voir [Hunter ex6-12 p193]

Rponse Multi-parties
Exemple
Content-Type : multipart/x-mixed-replace;boundary=End65577565679001838 Le serveur dfinit une chane ligne blanche sparateur des documents --End65577565679001838 Content-Type : text/html ligne blanche Le serveur attend 1 seconde <HTML><BODY><H1>Trois </H1><BODY></HTML> avant de renvoyer la suite : --End65577565679001838 Content-Type : text/html ligne blanche <HTML><BODY><H1>Deux </H1><BODY></HTML> --End65577565679001838 Content-Type : text/html ligne blanche <HTML><BODY><H1>Un </H1><BODY></HTML> --End65577565679001838 Content-Type : text/html ligne blanche <HTML><BODY><H1>Partez ! </H1><BODY></HTML> --End65577565679001838
le client affiche Trois

Le serveur attend 1 seconde avant de renvoyer la suite : le client affiche Deux

Le serveur attend 1 seconde avant de renvoyer la suite : le client affiche Un

Le serveur clt la connexion TCP/IP avant de renvoyer la suite : le client affiche finalement Partez ! 27

Suivi de Sessions avec HTTP


(Session Tracking)
n

Motivations :
n

La notion de session est importante dans une application conversationnelle


n

commerce lectronique
n

j ajoute ce produit mon panier (existant)

Cependant HTTP est un protocole stateless


n n

le serveur ne maintient pas d informations lies aux requtes prcdentes d un mme client. HTTP est donc sessionless

Comment implanter la notion de session sur plusieurs requtes HTTP


n

documents, CGI, SSS, Servlet, ASP

Suivi de Sessions avec HTTP


(Session Tracking)
n

Mthodes
n

Le serveur gnre un identificateur de session et associe un ta t (et une date limite de validit) une session Le client renvoie l identificateur de session chaque requte HTTP vers le serveur

Echange et Stockage de lidentificateur de session


n n n n

Input HIDDEN dans les formulaires Rcriture des URLs (EXTRA_PATH) Cookies (dactivable) Identificateur de session SSL (Secure Socket Layer)
29

Suivi de session avec HTTP


n

Une session s tend sur plusieurs requtes


n n

documents, CGI, SSS, Servlet, ASP le serveur maintient un contexte de session et y associe un identifiant de session input HIDDEN
n

3 solutions de suivi
n n

la R-criture d URL
n

contient l identifiant de la session l identifiant dans chaque URL (dans les documents) information positionne par le serveur sur le client puis envoy par le client chaque requte
n

les Cookies
n n

la dure de vie du cookie dpasse la session

Implantation
n

objet Session (ASP), classe HttpSession (JSP/Servlet)

Suivi de Session
n n

une entre HIDDEN par formulaire (i) Chaque rponse retourne par le serveur est un formulaire qui contient un identifiant cach dans une entre HIDDEN page de proposition Exemple
<FORM METHOD="POST" ACTION="/cgibin/command"> <INPUT TYPE="ckeckbox" NAME="art12387"> Chaussures ... </FORM>

rponse de /cgi-bin/command
<FORM METHOD="POST" ACTION="/cgi-bin/envoi"> <INPUT TYPE="hidden" NAME="TransID" VALUE="54109848932> Nom: <INPUT TYPE="text" NAME="nom"> Adresse: <INPUT TYPE="text" NAME="adresse"> N de Carte de Credit: <INPUT TYPE="text" NAME="numcarte"> ... <INPUT TYPE="hidden" NAME="Language" VALUE="French> </FORM>

31

Suivi de Session
n n

une entre HIDDEN par formulaire (ii) Inconvnients


n

dialogue uniquement par formulaire


n

car pas de persistance de l'identifiant ct client

Ambigut dans le cas des retours-arrire de l utilisateur


n

annulation d une srie d actions ou srie d action supplmentaire

Suivi de Session
n

la r-criture des URLs


L identifiant de session est encod dans les URLs des documents HTML retourn par le serveur.
n

Dans le PATH
n

http:// www.mycomp.com /cgi-bin/envoi?name=toto

n
n

devient
http:// www.mycomp.com /182993954/cgi -bin/envoi?name =toto http:// www.mycomp.com /cgi-bin/ envoi?name=toto

Dans l EXTRA-PATH
n

n
n

devient
http:// www.mycomp.com /cgi-bin/envoi/sid$182993954? name=toto

Limites
n n

URL gnre par un script (=>programmation) ou parsing des documents HTML retourns
n

mais disfonctionnement en prsence de scripts JavaScript ou VBScript gnrant eux aussi des URL !
33

Suivi de Session
n n

les Cookies [Netscape puis RFC2109] chane dcrivant l'tat d'une session
n n n n

stock sur le client


n

NAME=VALUE; expires=DATE; path=PATH_HEAD; / << /foo << /foobar ou /foo/bar.html domain=DOMAIN_TAIL; fr << mycomp.fr << sales.mycomp.fr

Limite
n

300 cookies simultanes par client, 20 cookies par serveur ou domaine, 4Ko par cookie (limite la taille des VALUEs)

communiqu dans les enttes de requtes et dans les enttes des rponses HTTP accessible par les scripts JavaScript dans une page HTML

Positionnement des Cookies


Client demande
GET /registration.html

Server sales.mycomp.fr rpond


Set-Cookie: CUSTOMER=DUPONT; path=/; expires=Monday, 09-Nov-96

Client demande
GET /command.html Cookie: CUSTOMER=DUPONT;

Server sales.mycomp.fr rpond


Set-Cookie: PARTNUM=01; path=/command; SHIPPING=FEDEX; path=/shipfexed; PARTNUM=02; path=/command;

Client demande
GET /shipping.html Cookie: CUSTOMER=DUPONT; Set-Cookie:

Server sales.mycomp.fr rpond Server sales.mycomp.fr rpond


Set-Cookie:

Client demande
GET /commandother.html Cookie: CUSTOMER=DUPONT; PARTNUM=01;

Client demande
GET /shipfedex1.html Cookie: CUSTOMER=DUPONT; SHIPPING=shipfexed; ...

35

L volution des Cookies


n n

Les cookies menacent la vie prive (privacy) des cybernautes bien qu ils soient trs utiles les navigateurs peuvent dsactiver les cookies
en vue d un accord juridique entre le client et le site sur
n

Un remplacant : P3P (Platform for Privacy Preferences)


n

la dfinition du champs des divulgations


n

ex : nom, prnom, adresse mais pas l age ou le nombre d enfants ex : cession des informations des tiers ex: je me suis mari

dfinition de l utilisation de ces donnes par le propritaire du site


n

dfinition de la procdure de modification des donnes ultrieurement.


n

TUID/PUID Temporary et Pairwise Unique ID


n

identifiants de session (et multi-sessions) sans information attache

P3P exprim en RDF/XML, Certificats / Signatures

Catgories des Informations Personnelles

37

Divulgation d informations personnelles

Echange P3P

39

Exemple de proposition P3P


<PROPOSAL realm="http://www.CoolCatalog.com/catalogue/" entity="CoolCatalog" agreeID="94df1293a3e519bb" assurance="http://www.GoodPrivacy.org"> <USES> <STATEMENT purpose="1" recipient="0" id="0"> <REF name="Web.Abstract.ClientClickStream"/> </STATEMENT></USES> <USES> <STATEMENT purpose="2,3" recipient="0" id="0" consequence="a site with clothes you'd appreciate."> <WITH><PREFIX name="User."> <REF name="Name.First"/> <REF name="Bdate.Year" OPTIONAL="1"/> <REF name="Gender"/> </PREFIX></WITH> </STATEMENT></USES> <DISCLOSURE discURI="http://www.CoolCatalog.com/PrivacyPractice.html"

HTTP-NG Next Generation


n

Problmatique
n

Protocoles Existants : HTTP/1.0 et HTTP/1.1


n n

standardis par le W3C Extensibilit lourde http://www.w3.org/Protocols/HTTP-NG modle d objets distribus

Proposition du HTTP-NG Working Group


n

Extensibilit simple, modulaire et par couche


n

Working Drafts (07/98)


n n

Modle d Architecture, Interfaces Web Binary Wire, SMUX

Abandonn depuis
41

HTTP-NG SMUX
n

Problmatique de SMUX
n n

HTTP : protocole trs li TCP/IP Consommation des ressources (rseaux, proxy, serveurs)
n

Plusieurs connexions HTTP par document


n

document + inclusions : images, applets, reste srielle, force les navigateurs parallliser n vite les reformatages pour les images de dimensions inconnues

Insuffisance des connexions KeepAlive de HTTP/1.1


n

Multiplexage
n n

niveau couche transport TCP et Non TCP

Ngotiation 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. 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. In Jigsaw [Jigsaw], a frame has been created, to simulate two different resources under the same URI, the one of the image itself. Those two resources have their own set of HTTP values, such as ETags, Content -Length and others and the result is sent out using the classic Content Negotiation of HTTP. The rdf can be also fetch directly without doing Content Negotiation, just adding the wanted mime type after ';' ex: foo.jpg;text/rdf
43

Les clients et les serveurs HTTP

Didier DONSEZ
Universit de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr

Les clients HTTP


n

Butineur ou Arpenteur Web


n

(browser Web)

Rcupre un document puis visualise ce documen le tout premier : NCSA Mosaic Netscape Communicator MS Internet Explorer Javasoft HotJava NeoPlanet Lynx (pour VT, Minitel 24x80), AvantGo, Pocket Explorer
MS IE NS Reste 86.08% 33.43% 0.5%
45

Sur station
n n n n n n n

Palmares d utilisation
n n n

Les clients HTTP


n

Mais aussi
n

sur Console de Jeux, PDA, iTV, Tlphone Cellulaire


n

WinCE Pocket Explorer, AvantGo ...

Navigation Online / Offline


n

Ladtop, PDA, Rcuperation en push dans un cache Puis consultation des documents dans le cache

n n

Rle d'un serveur HTTP


n n

Transformation de l'URL en fichier ou en script Vrification d'identit


n

Le client est-il qui il prtend tre ? Le client est-il autoris effectuer cette requte ?
n

Vrification d'accs
n

ACL,

Constitution de l entte de la rponse


n

Type MIME des donnes


n

mime.types fichier de correspondance extension vers type MIME

Taille des donnes, Langage, ...


n

Envoi de la rponse au client


ventuellement transform la vole

Mise jour des journaux d audit (log)


n

access_log, error_log, ...

47

L authentification dans HTTP


n n

Indiqu dans les ACL Mode d authentification


n

BASIC
n n

nom d utilisateur et mot de passe chang en clair (base64) ! base des mots de passe dans un fichier htpasswd
n

utilitaires de gestion du fichier

DIGEST
n n

scurisation de BASIC hachage scuris MD5 du (nom,password,URI, mthode,nombre alatoire fourni par le serveur) Secure Socket Layer (TLS : Transport Layer Security) authentification avec CA du serveur (2.0) et du client (3.0) confidentialit avec DES puis dialogue HTTP sur la connexion SSL

SSL
n n n n

L authentification applicative
n

Motivations
n n

interface de login identification externe


n

BD, Annuaire LDAP,

authentification plus forte formulaire d accueil HTML (nom, password)


n

Lapplication gre l authentification de l usager


n

attention le mot de passe est en clair

n n

gestion des tables d usager une session est ensuite ouverte associ un usager authentifi (ou non : par exemple rejet bout de 3 tentatives) TomCat peut de preciser les documents de login et derrreur pour une arborescence de documents/servlets/JSP
49

Remarque
n

Contrle d Accs dans HTTP


n

ACL (Access Control List)


n n

spcifie les autorisations (ALLOW) ou les interdictions (DENY) d accs une arborescence virtuelle du serveur en fonction
n n

de l authentification de la localisation du client


n n

sous domaine DNS rseau ou adresse IP

ACF (Access Control File)


n

fichier regroupant les ACL


n n

global : access.conf dans Apache par arborescence : .htaccess

combinaison des ALLOW et des DENY

Audit des Requtes


n

Journaux des requtes


n

les accs (access.log, refferee.log), et les erreurs (error.log), sont journaliss erreur dans les liens, clientle, analyse d activit,
Pour Apache
n

Exploitation des Journaux


n n

Reporting (Prsentation Synthtique)


n

AccessWatch, Wusage,Analog, wwwstat intgr et visualis par un script Net Analysis (Net Genesis), Enterprise Suite (Web Trends)
51

IIS, NS
n

Gnraux
n

Les Serveurs du March


n

Offre trs large


n n n n n n n n

Apache HTTPD Netscape Entreprise Server Microsoft Internet Information Server W3C Jigsaw Sun JavaServer Oracle Web Server IBM Web Sphere gestion des sessions, des transactions, accs aux serveurs d applications, ...

Fonctionnalits supplmentaires
n n

Apache
n

(www.apache.org, java.apache.org, xml.apache.org)

A patch of NCSA HTTPD


n n n n

serveur le plus rpandu (60% des serveurs au 09/2000) gratuit, issu du serveur NCSA HTTPD trs nombreuses plates-formes Unix et Windows NT extensible par des modules tiers possibilit dtendre Apache avec des modules externes (http://www.zyzzzyva.com/server/module_registry)
n

Nombreux Modules Tiers


n

mod_auth_cookies_file, mod_auth_cookies_msql, mod_cgi_sugid, mod_perl, mod_perl_fast, mod_auth_kerb, mod_auth_dbi, mod_rewrite, mod_jserv (servlet), mod_java (CGI crit en Java), php3

nombreux sous-projets autour de Java (Jakarta) et XML (Xerces, Xalan, XSP, Cocoon, )

53

Configuration Apache
n

Fichiers de configuration
n

httpd.conf
n

comportement de base
n

port TCP/IP, journaux, keepalive, UID, virtualhost, proxy, ...

srm.conf
n

traitement des ressources locales lors des requtes


n

index, script, rpertoire, AddType, AddIcon, Alias, DocumentRoot

access.conf
n

contrle d accs global (ACF : access config file) table de correspondance


n

mime.types
n

suffixe fichier -> type MIME document

Outil
n

GUI : Vision (focus-array.com)

JavaServer (jserv.sun.com)
n

Serveur HTTPD de SUN


n

anciennement Jeeves , crit en Java Scripts serveur crit en Java Servlets de Base : FileServlet, CGIServlet,

Servlets
n n

Remarque
n n

le bytecode d une servlet peut tre tlcharg et execut par la JVM du Serveur (dans un espace protg ou non) JigSaw du W3C fonctionne suivant le mme principe
55

Tomcat et Jserv
n

(java.apache.org)
JServ : module dextension Apache
n

Dmarre une JVM et invoque des servlets Utilis dans le JSDK Apache Server mod_xxx
(.dll, .so)

TomCat : serveur crit en Java


n

Configuration possible

TomCat Server
HTML AJP12

Client HTML Client HTML

HTML HTTP HTML HTTP

mod_jserv
(.dll, .so)

servlet/jsp

servlet/jsp

Autour d HTTP
n

Proxy
n

seul point de passage entre le rseau d entreprise et l extrieur


n

scurit, firewall

accs des protocoles non implments par les clients Web : WAIS, soulager les accs externes (moins de bande passante) rplication d une base documentaire amliorer le temps de rponse, soulager le rseau rcupration online/offline d une arborescence de documents constitution d un miroir local copie publique / copies de travail Point daccs centralisant un ensemble de sources Web Serveur HTTP pour informatique enfouie et embarque
57

Cache
n

Miroir
n n

Robot
n n

Mise jour de sites


n

Portail
n

Embedded Web Server


n

Proxy
n

Fonctions
n

seul point de passage entre le rseau d entreprise et l extrieur


n

firewall, contrler le profil d'utilisation

accs des protocoles non implments par les clients Web


n

WAIS
Proxy HTTP+HTML / WAIS Serveur WAIS Z35.50

Passerelle rseau de niveau applicatif


Navigateur Web HTTP + HTML

Couches OSI 1-6

Couches OSI 1-6

Couches OSI 1-6

Fonctionnement du Proxy/Cache
GET /fichier Client HTTPD fichier port 80 machX
GET /ficX Proxy port 8080 cache machP GET /ficY machY Internet
59

GET http://machX/ficX Client

HTTPD machX HTTPD

ficX

GET http://machY/ficY

ficY

Entreprise

Cache Web
n

But d un cache Rseau


n

Usager
n

Amliorer les performances du browser en utilisant les documents prsents dans le cache local Soulager le rseau fdrateur en cachant les documents demands par les usagers du sous-rseau Soulager les serveurs applicatifs

ISP
n

Provider Web
n

Documents
n n

Textes (HTML, XML, ...) et Images fixes Flux Audio et Video


n

ttes de rseau cable pour la Buffered-VOD

Serveurs
Il fonctionne en mode Proxy

Cache Web ii
n

Politique de remplacement de cache Web


n

Least Recently Used (LRU) trs populaire


n

conserve la date du dernier accs comptage du nombre de rfrences viction des documents les moins rfrencs LFU + prise en compte de la dure de la prsence dans le cache prise en compte la taille GDS + prise en compte du nombre de rfrence

Least Frequently Used (LFU)


n n

LFU-Aging
n

Greedy Dual-Size (GDS)


n

GDS -Frequency (GDSF)


n

61

Cache Web iii


n

Cache de Caches
n

Hirarchie multi-niveaux de caches


n n

exemple : RENATER cache Client -> cache Sous Rseau -> cache Backbone -> ...

quilibrage dynamique entre plusieurs caches de mme niveau mise jour, redirections de requte

ICP : Inter Cache Protocol


n

Gestion du Cache
Le document est il dans le cache ? Non Oui Le document est il prim ? date d expiration dpasse Oui Non : le cache arrte la connexion avec le serveur et retourne au client le document cach le cache dmarre la rcupration Le document a til t modifi ? date de modification identique Oui Le serveur continue la rcupration mme si le client interrompt la connexion Le document est rcupr, mis dans le cache, retourn au client
63

Non

le cache se connexe au serveur pour rcuprer l entte (mthode HEAD)

Miroir
n

But
n

Crer une copie miroir d un site (d une partie de site)


n n n

acclre l accs au document diminue la contention d accs au site diminue le trafic global sur Internet dclenchement automatique, manuel, push incrmentale / non

Mise jour du miroir


n n

Robot
n n

(Aspirateur de Site, Glaneur, ...) Rcupration d une arborescence de documents partir d une URL racine
n

Rgles de rcupration
n n

par rapport aux extensions (que les textes) profondeur du suivi de URL et limite de la rcupration heures creuses (dbit et $)

Dclenchement programm
n

Produits
n

nombreux freewares/sharewares
n

Fonction miroir intgre dans les logiciels auteurs


n

webcopy , wget, w3mir, ...

MS FrontPage, Goto MemoWeb, ...

Remarque
n n

permet de crer facilement un miroir utile la navigation offline


65

Mise jour des sites


n

Actuellement, chaque auteur travaille sur une copie locale et remplace la copie publie sur le Web par celle-i rgulirement

Remplacement des pages n par FTP


n

problme de gestion des versions multiples lors d un travail de groupe

par un script HTTP serveur propritaire


n
n

et information propritaire associe


utilis par MS FrontPage, NetObjects Team Fusion, Macromedia DreamWeaver,

mais pas d interoprabilit

WebDAV [RFC 2518]

Web Distributed Authoring and Versioning Protocol n le dernier effort de standardisation

WebDAV (i)
n

Web Distributed Authoring and Versioning Protocol


n

Extension de HTTP pour la mise jour de site (RFC 2518)


n

www.webdav.org, www.ics.uci.edu/pub/ietf/webdav

Notions
n

Propertie (proprit)
n

dcrit un document (auteur, taille, date de dernire modification, ...) au format XML/RDF

n n

Collection Locking (verrouillage)


n

verrou partag (shared) / verrou exclusif (exclusive) groupement logique de ressource pour la gestion (verrouillage, contrle d accs, ...)

Namespace (espace de nommage)


n

67

WebDAV (ii)
n

Web Distributed Authoring and Versioning Protocol

Ajout de nouvelles commandes HTTP


n

PROPFIND
n

retourne les proprits modifie les proprits cre une nouvelle collection copie ou dplace une ressource au sein d un espace de nommage verrouille et dverouille un ressource

PROPPATCH
n

MKCOL
n

COPY & MOVE


n

LOCK & UNLOCK


n

WebDAV (iii)
n

Web Distributed Authoring and Versioning Protocol

des Serveurs WebDAV


n n

MS IIS5 mod_dav pour Apache


n

www.webdav.org/mod_dav

CyberTeams Web Site Director

des Clients WebDAV


n n

MS Office 2000 et Explorer 5 SiteCopy


n

www.lyra.org/sitecopy

WebDAV Explorer
n

www.ics.uci.edu/~webdav

69

Portail (i)
n

Objectif
n

Point daccs centralisant un ensemble de sources dinformation Web


n

Intra-entreprise
n

Contenu : Favorite links, Agenda, Mail, Incident, Contenu : Info Bourse, Enchre, Mto, News Headline

Grand public
n

Fonctionnalits
n
n

Usagers Anomymes/Authentifis Personnalis


n

Scurisation (SSL, X509, cookie ) en fonction de lusager, de son role, de son emplacement gographique, Composition dynamique (utilisation dassistants, )

Personnalisable(Self-Service)
n

Multi-Accs (PC, Tlphone Cellulaire, PDA, ) Oracle Portal, NetPortal, WebPortal, iPlanet Portal, Apache JetSpeed,

Outils
n

Portail (ii)
n

Prsentation
n
n

1 page daccueil composite -> N onglets -> M zones (div, layer,


iconifiable, agrandissement/rduction, ajout/retrait,

frame, card, )

Dveloppement
n
n

Notion de PortLet : reprsente une source de donnes placer dans la page


Nouveau metier : provider de PortLet

Portal Server
HTML/CSS XML/XSL WML VoiceML HTTP WAP

PortLet Parallel Servlet PortLet PortLet PortLet

HTML HTTP HTML HTTP HTML HTTP HTML HTTP

Internal Web Provider Internal Web Provider External (Meteo ) Web Provider External (Bourse) Web Provider

Client

71

Embedded Web Server


n

Rappel : HTTP est un protocole trs rpandu et trs outill Dialoguer (piloter) avec des ordinateurs enfouis ou embarqus via HTTP
n

Motivation
n

Rseaux
n

Routeurs, .. Tlphonie cellulaire, Rpondeur domestique, Proxy Domotique pilotant lalarme, le chauffage, Frigidaire TV, HIFI, Digital Camera, Consoles de Jeux

Electronic consuming
n

Domotique
n

Entertainement Network
n

Serveur HTTP pour des ordinateurs enfouis ou embarqus


n n

Empreinte memoire rduite, Sun JES (Java Embedded Server), Apache PicoServer

Cartographie du Web
n

Grouper les sites en rgions


n

en fonction de leur relation smantique, des rfrences d URL

Reprsentation de la carte
n

hyperbolique, cible 2D,

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 n n n

webmaster : dimensionner le systme (priode de charge) commercial : pister le client dans sa navigation investisseur : le rassurer avant l introduction en Bourse ;-) publicitaire : fixer le prix des bandeaux publicitaires

Comment
n n

partir des journaux du serveur HTTP (access.log) externalisation


n

socit tierce indpendante proposant des rapports normaliss (Exemple : www.estat.com, ...). chaque page tracer contient une image transparente de 1x1 pixel qui est charge depuis la socit tierce. La socit 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 n

Les usagers d un site ont des gots et des besoins diffrents La personnalisation tente d offrir l usager une interface correspondant le plus possible ses gots et ses besoins

Solutions
n

Analyse (E-Analytics)
n

Analyse des navigations prcdentes de l usager


n

Net Perceptions, Accrue Software, NetGenesis Corp

Personnalisation sur rgles (Rules-based Personalization)


n

Cration des pages personnalises la vole en fonction de rgles


n

BroadVision, Vignette Corp.

Filtrage collaboratif (Collaborative Filtering)


n

similarit entre utilisateurs : comportement de groupes


n

Net Perceptions, Macromedia, Be Free

Test de performance / charge


n

Motivation
n

Vrification du niveau de charge support avant la mise en production 1 N clients en parallle qui mulent M Web surfing sur le site Remarque : Mmes outils pour les attaques DoS (Deny-Of-Service) et Distributed DoS TPC-W http://www.tpc.org (voir Cours Benchmarks BD) WebMark : orient requte HTTP/GET sur des documents statiques SPECWeb : http://www.spec.org/osg/web96/workload.html Dtecter quel composant (HTTPD, EJB, MT, SGBD, Mailhost, ) cre lembouteuillage (bottleneck) Apache JMeter, Rational SiteLoad,

Simulateur de charge
n n

Benchmark
n n n

Analyse et diagnostique de la charge


n

Outils
n

77

Rpartition de Charge Disponibilit (Avaibility)


n

(Load Balancing)

Motivations
n

Performance
n

Amliorer/garantir les temps de rponse


n

Exig par des portails (vers votre service) comme Yahoo

n n

QoS pour diffrentes classes dusagers (gold, silver, ) volution incrmentale de la ferme (parc) de serveurs Tolrance aux pannes
n

Disponibilit
n

Diffrents niveaux de disponibilit Le serveur Europe reoit les requtes des clients franais

fonctionnement dgrad en cas de panne


n

Voir:
n

V. Cardellini, M. Colajanni, P.S.Yu, Dynamic Load Balancing on WebServer Systems, IEEE Internet Computing, May-June 1999, pp28-39

Rpartition de Charge
n

Architecture
n n

Un serveur de rpartition de charge Une ferme de serveurs Web


100 Client WWW Gold France 10000 Client WWW France 10000 Client WWW Allemagne Serveur de Rpartition de Charge

Serveur WWW Gold France Serveur WWW France Serveur WWW Europe
79

Information sur la charge et les pannes

Disponibilit
n

Cas dune panne


n

Les clients franais sont servis par le serveur Europe


La panne peut tre dtecte par des pings rguliers ! Serveur Client WWW WWW Gold France Gold France
n

Client WWW France Client WWW Allemagne

Serveur de Rpartition de Charge

Serveur WWW France Serveur WWW Europe

Serveur de Rpartition de Charge


n

Fonction
n

rpartir les requtes entre les serveurs Web donneur de cartes (Round Robin) alatoire vers les serveurs les moins chargs topologique
n

Politiques de rpartition
n n n n

Optimiser la bande passante de linfrastructure rseau


n

Lentreprise dispose de serveurs rpartis sur plusieurs backbones du Web

en fonction de la classe dusagers


n

Offrir diffrentes QoS (temps de rponse, ) Une session dmarre sur un serveur doit continuer sur ce serveur
n

en fonction des sessions en cours


n

SSL, Cookies de session pour Http, Stream du RealServer,


81

Fournisseurs
n

Alteon WebSystems, F5, Foundry Networks, Radware, CISCO,

Niveaux de la Rpartition de Charge par le Serveur de Rpartition


n

Niveau 3 IP
n

Rpartition par le DNS


n n n

La rsolution DNS nest pas une constante

une adresse DNS correspond une liste dadresses IP tester nslookup plusieurs fois de suite sur www.sun.com

Future RFP VRRP (Virtual Router Redondancy Protocol)


n

Grappe de routeurs derrire un routeur virtuel

Niveau 4
n

Session SSL Protocole HTTP


n n

Niveau 7 Applicatif
n

n n

Protocoles FTP, SMTP, Flux Audio/Vido,

Dtection du Cookie de la classe dusager dans une requte HTTP Dtection du Cookie de lidentifiant de session dans une requte HTTP

Rappel : Redirection (301) de la requte HTTP

Performance grce aux caches


n

2 types de page
n

Dynamique
n n

Le contenu varie chaque requte Le contenu peut rester constante pour un client au cours de sa session Le contenu ne varie pas jusqu la prochaine modification
n

Statique
n

Exemple : Mise jour des nouvelles du jour tous les matins 7H00 GMT

Les caches
n n

dans les proxys et dans les navigateurs utilise la date dexpiration du document Pour viter que le navigateur recharge le document inutile (ce qui charge le serveur), configurez les dates dexpiration des documents sur le serveur Web et dans les enttes des rponses des scripts.
83

Conseil
n

Les Moteurs d Indexation (i)


n

L utilisateur utilise deux modes de parcours d un site


n n

Le suivi de liens La recherche Full-Text par combinaison de mots-cl et de concepts


n

(antoine NEAR(15) clopatre) AND NOT csar

Recherche Plein Texte (Full-Text)


n

pr-indexation du corpus documentaire


n n

Remarque : le corpus peut provenir du Web (i.e. Portails) Problme : les documents gnrs la vole

le script /cgi-bin/search interroge l index gnr en Offline 1- GET /cgi/search?q=donsez

2- Liste de ref Client HTML


3- GET ref

Serveur HTTPD

Copie Publie Index

Indexeur FullText
Mise Index en Jour Gnration

4- ref

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

Caractristiques
n

Indexation incrmentale vs totale


n

l ajout d un document au corpus ne ncessite pas de reconstruire l index Texte, Texte structur Multimdia : Images, Sons, Vido (MPEG7), Monde 3D HTML, XML, PDF, Word/RTF, GIF, JPEG, MPEG, ...
C. Leloup, Moteurs d'Indexation et de Recherche, Ed. Eyrolles, 1998, ISBN 2212-08976-7 Livre OReilly sur WAIS

Types de document indexs


n n

Formats de document analyss


n

Bibliographie
n n

85

HTTP dans le JDK


n

Fonctionnalit
n

Implmente directement un client HTTP n java.net.URL n java.net.URLConnection n java.net.HttpURLConnection n java.net.JarURLConnection rcupre un InputStream sur le document distant robot de rcupration, ... dialogue client-serveur en tunneling HTTP/TCPIP avec un serveur HTTP
n

Usage
n n

voir l exemple du compteur sur [Orfali]

Voir le cours Programmation Rseau en Java

HTTP dans le HTML


n

Elments META dans l lment HEAD d un document HTML 3.2


n

<META HTTP-EQUIV=name CONTENT=value>


n n

quivalent ajouter des Header s pour documents statiques

<META HTTP-EQUIV="Expires" CONTENT=" Tue, 20 Aug 1996 14:25:27 GMT"> <META HTTP-EQUIV=" Refresh" CONTENT="3; URL= http://newsite.mycomp.com "> <META HTTP-EQUIV="Cache-Control" CONTENT="no -cache"> <META HTTP-EQUIV ="Content -Type" content=" text/html; charset=iso -8859-1"> <META HTTP-EQUIV ="Set -Cookie" content="cookie=set; path=/"> 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 n

Affichage limit, contrle limit (i.e. clavier, pointage, ) Dbit limit et cot de communication

WAP Wireless Application Protocol


n

protocole HTTP like et light


n n

Utilise les couches rseaux des rseaux cellulaires ( la place d IP) Utilise la scurit des rseaux cellulaires

WML Wireless Markup Language


n

langage hypertextuel adapt aux handsets nomades


n

bas sur XML/DTD : il existe un format plus compact (bytecod)

voir www.wapforum.org et le cours sur WAP et WML

WAP

Architecture Rseau
WML/HTTP WML/WAP

Passerelle WAP

WML/HTTP

Serveur WWW
HTML HTTP

Filtre

Rseau GSM
WML/WAP WML/WAP WML/WAP

Internet
Filtre ProxyWAP

Serveur WWW

Serveur TeleVAS

HTML HTTP

Serveur WWW

WAP Handsets

89

WML

Exemple : les prvisions mto


<?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&apos;cast</td><td>T &#xB0;C</td></tr> <tr><td>M 6/7</td><td><img src="rainy.wbmp" alt="rain"/></td> <td>25&#xB0;C</td></tr> <tr><td>T 6/8</td><td><img src="partcldy.wbmp" alt="part cldy"/> </td><td>27&#xB0;C</td></tr> <tr><td>W 6/9</td><td><img src="cloudy.wbmp" alt="cloudy"/></td> <td>24&#xB0;C</td></tr> <tr><td>T 6/10</td><td><img src="rainy.wbmp" alt="rainy"/></td> <td>28&#xB0;C</td></tr> <tr><td>F 6/11</td><td><img src="sunny.wbmp " alt="sunny"/></td> <td>29&#xB0;C</td></tr> </table> </p> </card>

Bibliographie
n

Beaucoup de Guides, Tutoriels, Manuels


n n n

http://ds.internic.net/rfc/rfc2068.txt http://www.w3.org http://search.yahoo.fr/search/fr?p=HTTP

Des livres n Attention, ca change trs vite ! n La traduction en franais a au moins 1 an de retard sur la version anglaise

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

trs complet

Robert Orfali, Dan Harkey, Client/Server Programming with Java and Corba , 2me dition, 1998, Ed Wiley, ISBN 0-471-24578-X. voir les chapitres 11 et 12
n

compare HTTP Corba

Clinton Wong, Programmation de clients Web avec Perl , Ed Oreilly, 1997, ISBN 2-84177-050-8
n

l automatisation de requtes sur HTTP (en Perl) Revues

n n

Revue IEEE Internet Computing http://www.computer.org/internet Revue IEEE IT Professional http://www.computer.org/itpro

Bibliographie - Autres
n

Robert Orfali, Dan Harkey, Jeri Edwards, Client/Server Survival Guide , 3rd edition, February 1999, Ed John Wiley & Sons; ISBN: 0471316156
n

information gnrale sur les composants d un SI

Louis Rosenfeld, Peter Morville , "Information Architecture for the World Wide Web - Designing Large-scale Web Sites", 1st Edition February 1998, ISBN 1-56592-282-4,OReilly, 226 pages, $24.95 C. Leloup, Moteurs d'Indexation et de Recherche, Ed. Eyrolles, 1998, ISBN 2-212-08976-7

93

Vous aimerez peut-être aussi