Vous êtes sur la page 1sur 47

Le protocole HTTP

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

le Client envoie la Requête


POST /script HTTP/1.0 méthode,chemin,version
Accept: www/source documents acceptés
Accept: text/html le Serveur retourne la Réponse
Accept: image/gif
HTTP/1.0 200 OK ligne de status
Accept: image/jpeg Entête de la
User-Agent: Lynx/2.2 libwww/2.14 Date: Wed, 02Feb97 23:04:12 GMT réponse
Server: NCSA/1.1
* une ligne blanche *
MIME-version: 1.0
name1=value1&
name2=value2 Last-modified: Mon,15Nov96 23:33:16 GMT
Content-type: text/html type du document retourné
Content-length: 2345 sa taille
Corps de la Corps de la
requête
* une ligne blanche * réponse
Format de la requête
n Envoyé par le client au serveur
<Méthode> <URI> HTTP/<Version>
[<Champ d ’entête>: <Valeur>]
[<tab><Suite Valeur si >1024>]
ligne blanche
[corps de la requête pour la méthode POST]
GET /docu2.html HTTP/1.0 POST /script HTTP/1.0
Accept: www/source Accept: www/source
Accept: text/html Accept: text/html
Accept: image/gif
Accept: image/gif
User-Agent: Lynx/2.2 libwww/2.14
User-Agent: Lynx/2.2 libwww/2.14
From: alice@pays.merveilles.net
From: alice@pays.merveilles.net Content-Length: 24
* une ligne blanche * * une ligne blanche *
name1=value1&
name2=value2 5

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

Status des réponses HTTP


(RFC2068)
n réponse donné par le serveur au client
n Status de la requête
n 100-199 Informationnel
n 100 : Continue (le client peut envoyer la suite de la requête), ...

n 200-299 Succès de la requête client


n 200: OK, 201: Created, 204 : No Content, ...

n 300-399 Redirection de la Requête client


n 301: Redirection, 302: Found, 304: Not Modified, 305 : Use Proxy, ...

n 400-499 Requête client incomplète


n 400: Bad Request , 401: Unauthorized, 403: Forbidden, 404: Not Found

n 500-599 Erreur Serveur


500: Server Error, 501: Not Implemented,
Entêtes HTTP
n 4 types de champs d ’entête
n Général
n commun au serveur, au client ou à HTTP
n Requête du client
n formats de documents et paramètres pour le serveur
n Réponse du serveur
n information concernant le serveur
n Entité
n informations concernant les données échangés

Entêtes Générales d’HTTP


n Cache-Control = contrôle du caching.
n Connection = listes d ’option
n close pour terminer une connexion.
n Date = date actuelle (format RFC1123 mais aussi RFC850).
n MIME-Version = version MIME utilisé.
n Pragma = instruction pour le proxy.
n Transfer-Encoding = type de la transformation appliquée au corps du
message.
n Upgrade = indique le protocole soutaité.
n Via = utilisé par les proxys pour indiquer les machines et protocoles
intermédiaires.
Entêtes de requêtes client HTTP
n Accept = type MIME visualisable par l ’agent
n Accept-Encoding = méthodes de codage acceptées
n compress, x-gzip, x-zip
n Accept-Charset = jeu de caractères préféré du client
n Accept-Language : liste de langues
n fr, en, …
n Authorization = type d ’autorisation
n BASIC nom:mot de passe (en base64)
n donc transmis en clair !!!
n NB : Préalablement le serveur a répondu un WWW-Authenticate
n Cookie = cookie rétourné

11

Entêtes de requêtes client HTTP


n From = adresse email de l ’utilisateur
n rarement envoyé pour conserver l anonymat de l ’utilisateur
n Host = spécifie la machine et le port du serveur
n un serveur peut héberger plusieurs serveurs
n If-Modified-Since = condition de retrait
n la page n ’est transférée que si elle a été modifiée depuis la date
précisée. Utilisé par les cachs
n indique si le document demandé peut être caché ou pas.
n If-Unmodified-Since = condition de retrait
n If-Match = condition de retrait
n If-None-Match = condition de retrait
n If-Range = condition de retrait
Entêtes de requêtes client HTTP
n Max-Forwards = nombre max de proxy
n Proxy-Authorization = identification
n Range = zone du document à renvoyer
n bytes=x-y (x=0 correspond au premier octet, y peut être omis
pour spécifier jusqu ’à la fin)
n Referer = URL d ’origine
n page à contenant l ’ancre à partir de laquelle le visualisateur a
trouvé l ’URL.
n User-Agent = modèle du visualisateur

13

Entêtes des réponses serveur HTTP


n Accept-Range = accepte ou refus d ’une requête par intervalle
n Age = ancienneté du document en secondes
n Proxy-Authenticate = système d ’authentification du proxy
n Public = liste de méthodes non standards gérées par le serveur
n Retry-After = date ou nombre de secondes pour un ressai en cas de
code 503 (service unavailable)
n Server = modèle de HTTPD
n utilisé par Satan !!!!
n Set-Cookie = créer ou modifie un cookie sur le client
n Vary = l ’entité possède plusieurs sources
n Warning = informations supplémentaire du code d ’état
n 14 Transformation applied : le proxy a changé de Content -Type ou le
Content -Encoding
n WWW-Authenticate = système d ’authentification pour l ’URI
Entêtes d ’entité HTTP
n Allow = méthodes autorisées pour l ’URI
n Content- Base = URI de base
n pour la résolution des URL
n Last-Modified = date de dernière modification du doc.
n Utilisé par les caches
n Content- Length = taille du document en octet
n utilisé par le client pour gauger la progression des chargements
n Content- Encoding = type encodage du document renvoyé
n compress, x-gzip, x-zip
n Content- Language : le langage du document retourné
n fr, en ...
n Content- Location : URI de l ’entité
n quand l ’URI est à plusieurs endroits

15

Entêtes d ’entité HTTP


n Content-MD5 : résumé MD5 de l ’entité
n Content-Range : position du corps partiel dans l ’entité
n bytes x-y/taille
n Content-Transfert-Encoding : transformation appliqué du
corps de l ’entité
n 7bit, binary, base64, quoted-printable
n Content-Type = type MIME du document renvoyé
n utilisé par le client pour sélectionner le visualisateur (plugin)
n RFC2045
n ETag : transformation appliqué du corps de l ’entité
n 7bit, binary, base64, quoted-printable
Entêtes d ’entité HTTP
n Expires : date de péremption de l ’entité
n Last-Modified : date de la dernière modification de l ’entité
n Location : URI de l ’entité
n quand l ’URI est à plusieurs endroits
n URI : nouvelle position de l ’entité
n Refresh : 10
n 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 (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 doc.htm


port
le Client envoie 80 machX
GET /doc.htm HTTP/1.0 méthode,chemin,version
Accept: www/source documents acceptés
Accept: text/html
le Serveur répond
Accept: image/gif
User-Agent: Lynx/2.2 libwww/2.14 HTTP/1.0 200 OK ligne de status
From: alice@pays.merveilles.net Date: Wed, 02Feb97 23:04:12 GMT
* une ligne blanche * Server: NCSA/1.1
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


Méthode GET
GET /script?name1=value1&name2=value2

Client HTTPD script


port
le Client envoie 80 machX
GET /script?name1=value1&name2=value2 HTTP/1.0
Accept: www/source documents acceptés
Accept: text/html
le Serveur répond
Accept: image/gif
User-Agent: Lynx/2.2 libwww/2.14 HTTP/1.0 200 OK ligne de status
From: alice@pays.merveilles.net Date: Wed, 02Feb97 23:04:12 GMT
* une ligne blanche * Server: NCSA/1.1
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
Méthode POST
POST /script

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

Codage des « paramètres »


n Les valeurs passées (URL et contenu des entrées des formulaires) doivent
être sur 7 bits et sans caractères spéciaux
n Format d ’encodage : x-www-form-urlencoded
n Espace -> « + »
n Tous les caractères spéciaux et accentués
-> %code ascii
n @ %40
n é %e9
n Les entrées des formulaires sont encodés dans une chaîne composée
de paires (nom de l ’entrée)=(valeur de l ’entrée) séparé par de &
n nom=Dupont+Jean&adresse=3+rue+de+la+ Gait%e9%0a75014+Paris

n il existe de nombreuses bibliothèques d ’encodage/décodage


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
n Visualisation par plugin
n la fonction est présente dans un DLL, SO, ou un JAR
n elle est liée dynamiquement pour réaliser la visualisation
n world/vrml, text/tex
n Visualisation externe
n la fonction n ’est pas présente dans le client
n le client rapporte le document et le sauvegarde dans un fichier
temporaire
n video/mpeg, application/postscript

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

<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

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

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)»
n Cependant HTTP est un protocole « stateless »
n le serveur ne maintient pas d ’informations liées aux requêtes
précédentes d ’un même client.
n HTTP est donc « sessionless »
n Comment implanter la notion de session
sur plusieurs requêtes HTTP
n documents, CGI, SSS, Servlet, ASP
Suivi de Sessions avec HTTP
(Session Tracking)
n Méthodes
n Le serveur génère un identificateur de session et associe un éta t (et
une date limite de validité)
à une session
n Le client renvoie l ’identificateur de session à chaque requête HTTP
vers le serveur

n Echange et Stockage de l’identificateur de session


n Input HIDDEN dans les formulaires
n Réécriture des URLs (EXTRA_PATH)
n Cookies (déactivable)
n Identificateur de session SSL (Secure Socket Layer)

29

Suivi de session avec HTTP


n Une session s ’étend sur plusieurs requêtes
n documents, CGI, SSS, Servlet, ASP
n le serveur maintient un contexte de session
et y associe un identifiant de session
n 3 solutions de suivi
n input HIDDEN
n contient l ’identifiant de la session
n la Ré-écriture d ’URL
n l ’identifiant dans chaque URL (dans les documents)
n les Cookies
n information positionnée par le serveur sur le client
n la durée de vie du cookie dépasse la session
n puis envoyé par le client à chaque requête
n Implantation
n objet Session (ASP), classe HttpSession (JSP/Servlet)
Suivi de Session
n une entrée HIDDEN par formulaire (i)
n Chaque réponse retournée par le serveur est un
formulaire qui contient un identifiant caché dans
une entrée HIDDEN
• page de proposition
n Exemple <FORM METHOD="POST" ACTION="/cgi-
bin/command">
<INPUT TYPE="ckeckbox" NAME="art12387">
Chaussures
...
</FORM>
• réponse 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 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 Ambiguïté dans le cas des retours-arrière de l ’utilisateur


n annulation d ’une série d ’actions

n ou série d ’action supplémentaire


Suivi de Session
la ré-écriture des URLs
n 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 devient
n http:// www.mycomp.com /182993954/cgi -bin/envoi?name =toto
n Dans l ’EXTRA-PATH
n http:// www.mycomp.com /cgi-bin/ envoi?name=toto
n devient
n http:// www.mycomp.com /cgi-bin/envoi/sid$182993954? name=toto

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

n les Cookies [Netscape puis RFC2109]


n chaîne décrivant l'état d'une session
n NAME=VALUE;
n expires=DATE;
n path=PATH_HEAD; / << /foo << /foobar ou /foo/bar.html
n domain=DOMAIN_TAIL; fr << mycomp.fr << sales.mycomp.fr
n stocké sur le client
n Limite
n 300 cookies simultanées par client, 20 cookies par serveur ou domaine,
4Ko par cookie (limite la taille des VALUEs)

n communiqué dans les entêtes de requêtes


et dans les entêtes des réponses HTTP
n accessible par les scripts JavaScript dans une page HTML
Positionnement des Cookies
Client demande
GET /registration.html Server sales.mycomp.fr répond
Set-Cookie: CUSTOMER=DUPONT;
Client demande path=/; expires=Monday, 09-Nov-96
GET /command.html Server sales.mycomp.fr répond
Cookie: CUSTOMER=DUPONT; Set-Cookie: PARTNUM=01;
Client demande path=/command;
GET /shipping.html Server sales.mycomp.fr répond
Cookie: CUSTOMER=DUPONT; Set-Cookie: SHIPPING=FEDEX;
Client demande path=/shipfexed;
GET /commandother.html Server sales.mycomp.fr répond
Cookie: CUSTOMER=DUPONT; Set-Cookie: PARTNUM=02;
PARTNUM=01; path=/command;
Client demande
GET /shipfedex1.html ...
Cookie: CUSTOMER=DUPONT;
SHIPPING=shipfexed;
35

L ’évolution des Cookies


n Les cookies menacent la vie privée (privacy)
des cybernautes bien qu ’ils soient très utiles
n les navigateurs peuvent désactiver les cookies
n Un remplacant : P3P (Platform for Privacy Preferences)
n en vue d ’un accord juridique entre le client et le site sur
n la définition du champs des divulgations
n ex : nom, prénom, adresse mais pas l ’age ou le nombre d ’enfants
n définition de l ’utilisation de ces données par le propriétaire du site
n ex : cession des informations à des tiers
n définition de la procédure de modification des données ultérieurement.
n ex: je me suis marié
n TUID/PUID Temporary et Pairwise Unique ID
n identifiants de session (et multi-sessions) sans information attachée
n P3P exprimé en RDF/XML, Certificats / Signatures
Catégories 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 Problématique
n Protocoles Existants : HTTP/1.0 et HTTP/1.1
n standardisé par le W3C
n Extensibilité lourde
n Proposition du HTTP-NG Working Group
n http://www.w3.org/Protocols/HTTP-NG
n Extensibilité simple, modulaire et par couche
n modèle d ’objets distribués
n Working Drafts (07/98)
n Modèle d ’Architecture, Interfaces Web
n Binary Wire, SMUX
n Abandonné depuis

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

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

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

Les clients HTTP


n Mais aussi
n sur Console de Jeux, PDA, iTV, Téléphone Cellulaire
n WinCE Pocket Explorer, AvantGo ...

n Navigation Online / Offline


n Ladtop, PDA, …

n Récuperation en push dans un cache


n Puis consultation des documents dans le cache
Rôle d'un serveur HTTP
n Transformation de l'URL en fichier ou en script
n Vérification d'identité
n Le client est-il qui il prétend être ?
n Vérification d'accès
n Le client est-il autorisé à effectuer cette requête ?
n ACL, …
n Constitution de l ’entête de la réponse
n Type MIME des données
n mime.types fichier de correspondance extension vers type MIME
n Taille des données, Langage, ...
n Envoi de la réponse au client
n éventuellement transformé à la volée
n Mise à jour des journaux d ’audit (log)
n access_log, error_log, ... 47

L ’authentification dans HTTP


n Indiqué dans les ACL
n Mode d ’authentification
n BASIC
n nom d ’utilisateur et mot de passe échangé en clair (base64) !
n base des mots de passe dans un fichier htpasswd
n utilitaires de gestion du fichier
n DIGEST
n sécurisation de BASIC
n hachage sécurisé MD5 du (nom,password,URI, méthode,nombre
aléatoire fourni par le serveur)
n SSL
n Secure Socket Layer (TLS : Transport Layer Security)
n authentification avec CA du serveur (2.0) et du client (3.0)
n confidentialité avec DES
n puis dialogue HTTP sur la connexion SSL
L ’authentification applicative
n Motivations
n interface de login
n identification externe
n BD, Annuaire LDAP, …
n authentification plus forte
n L’application gère l ’authentification de l ’usager
n formulaire d ’accueil HTML (nom, password)
n attention le mot de passe est en clair
n gestion des tables d ’usager
n une session est ensuite ouverte associé à un usager authentifié (ou
non : par exemple rejet à bout de 3 tentatives)
n Remarque
n TomCat peut de preciser les documents de login et d’errreur pour
une arborescence de documents/servlets/JSP
49

Contrôle d ’Accès dans HTTP


n ACL (Access Control List)
n spécifie les autorisations (ALLOW) ou les interdictions (DENY)
d ’accès à une arborescence virtuelle du serveur
n en fonction
n de l ’authentification
n de la localisation du client
n sous domaine DNS
n réseau ou adresse IP
n ACF (Access Control File)
n fichier regroupant les ACL
n global : access.conf dans Apache
n par arborescence : .htaccess
n combinaison des ALLOW et des DENY
Audit des Requêtes
n Journaux des requêtes
n les accès (access.log, refferee.log), et les erreurs (error.log), … sont
journalisés
n Exploitation des Journaux
n erreur dans les liens, …
n clientèle, analyse d ’activité, …
n Reporting (Présentation Synthétique)
n Pour Apache
n AccessWatch, Wusage,Analog, wwwstat
n IIS, NS
n intégré et visualisé par un script
n Généraux
n Net Analysis (Net Genesis), Enterprise Suite (Web Trends)

51

Les Serveurs du Marché


n Offre très large
n Apache HTTPD
n Netscape Entreprise Server
n Microsoft Internet Information Server
n W3C Jigsaw
n Sun JavaServer
n Oracle Web Server
n IBM Web Sphere
n …
n Fonctionnalités supplémentaires
n gestion des sessions, des transactions, …
n accès aux serveurs d ’applications, ...
Apache
n (www.apache.org, java.apache.org, xml.apache.org)
n A patch of NCSA HTTPD
n serveur le plus répandu (60% des serveurs au 09/2000)
n gratuit, issu du serveur NCSA HTTPD
n très nombreuses plates-formes Unix et Windows NT
n extensible par des modules tiers
n Nombreux Modules Tiers
n possibilité d’étendre Apache avec des modules externes
(http://www.zyzzzyva.com/server/module_registry)
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
n 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, ...
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

Couches OSI Couches OSI Couches OSI


1-6 1-6 1-6
Fonctionnement du Proxy/Cache
GET /fichier

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

Cache Web iii


n Cache de Caches
n Hiérarchie multi-niveaux de caches
n exemple : RENATER
n cache Client -> cache Sous Réseau -> cache Backbone -> ...
n équilibrage dynamique
entre plusieurs caches de même niveau
n ICP : Inter Cache Protocol
n mise à jour, redirections de requête
Gestion du Cache
Le document est il
dans le cache ?
Non Oui
Le document est il périmé ?
Non date d ’expiration dépassée

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

Le serveur continue la Le document est récupéré,


récupération même si le mis dans le cache,
client interrompt la retourné au client
connexion
63

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

n Mise à jour du miroir


n déclenchement automatique, manuel, push
n incrémentale / non
Robot
n (Aspirateur de Site, Glaneur, ...)
n Récupération d ’une arborescence de documents
à partir d ’une URL « racine »
n Règles de récupération
n par rapport aux extensions (que les textes)
n profondeur du suivi de URL et limite de la récupération
n Déclenchement programmé
n heures creuses (débit et $)
n Produits
n nombreux freewares/sharewares
n webcopy , wget, w3mir, ...
n Fonction miroir intégrée dans les logiciels auteurs
n MS FrontPage, Goto MemoWeb, ...
n Remarque
n permet de créer facilement un miroir
n utile à la navigation offline

65

Mise à jour des sites


n Actuellement, chaque auteur travaille sur une copie locale et
remplace la copie publiée sur le Web par celle-çi régulièrement
n Remplacement des pages
n par FTP
n problème de gestion des versions multiples
lors d ’un travail de groupe
n par un script HTTP serveur propriétaire
n et information propriétaire associée
n utilisé par MS FrontPage, NetObjects Team Fusion, Macromedia
DreamWeaver, …
n mais pas d ’interopérabilité
n 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
n Notions
n Propertie (propriété)
n décrit un document (auteur, taille, date de dernière modification, ...) au
format XML/RDF
n Collection
n Locking (verrouillage)
n verrou partagé (shared) / verrou exclusif (exclusive)
n Namespace (espace de nommage)
n groupement logique de ressource pour la gestion (verrouillage, contrôle
d ’accès, ...)

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

n des Clients WebDAV


n MS Office 2000 et Explorer 5
n SiteCopy
n www.lyra.org/sitecopy
n WebDAV Explorer
n www.ics.uci.edu/~webdav

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

HTML/CSS HTML Internal


PortLet Web Provider
XML/XSL HTTP
WML HTML Internal
VoiceML PortLet Web Provider
Parallel HTTP
Client HTTP Servlet HTML External (Meteo )
WAP PortLet Web Provider
HTTP
HTML External (Bourse)
PortLet
HTTP Web Provider
71

Embedded Web Server


n Rappel : HTTP est un protocole très répandu et très outillé
n Motivation
n Dialoguer (piloter) avec des ordinateurs enfouis ou embarqués via
HTTP
n Réseaux
n Routeurs, ..
n Electronic consuming
n Téléphonie cellulaire, Répondeur domestique, …
n Domotique
n Proxy Domotique pilotant l’alarme, le chauffage, Frigidaire …
n Entertainement Network …
n TV, HIFI, Digital Camera, Consoles de Jeux …
n Serveur HTTP pour des ordinateurs enfouis ou embarqués
n Empreinte memoire réduite, …
n Sun’ JES (Java Embedded Server), Apache’ PicoServer
Cartographie du Web
n Grouper les sites en « régions »
n en fonction de leur relation sémantique, des références
d ’URL

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

Répartition de Charge (Load Balancing)

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 Serveur


• de Répartition •
Client WWW WWW
France de Charge 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

Client WWW Ž Ž Serveur


Allemagne WWW
Europe
Serveur de Répartition de
Charge
n Fonction
n répartir les requêtes entre les serveurs Web
n Politiques de répartition
n donneur de cartes (Round Robin)
n aléatoire
n vers les serveurs les moins chargés
n topologique
n Optimiser la bande passante de l’infrastructure réseau
n L’entreprise dispose de serveurs répartis sur plusieurs backbones du Web
n en fonction de la classe d’usagers
n Offrir différentes QoS (temps de réponse, …)
n en fonction des sessions en cours
n Une session démarrée sur un serveur doit continuer sur ce serveur
n SSL, Cookies de session pour Http, Stream du RealServer, …
n Fournisseurs 81
n Alteon WebSystems, F5, Foundry Networks, Radware, CISCO, …

Niveaux de la Répartition de Charge


par le Serveur de Répartition
n Niveau 3 – IP
n Répartition par le DNS
n La résolution DNS n’est pas une constante
n une adresse DNS correspond une liste d’adresses IP
n à tester nslookup plusieurs fois de suite sur www.sun.com
n Future RFP VRRP (Virtual Router Redondancy Protocol)
n Grappe de routeurs derrière un routeur virtuel
n Niveau 4
n Session SSL
n Niveau 7 – Applicatif
n Protocole HTTP
n Détection du Cookie de la classe d’usager dans une requête HTTP
n Détection du Cookie de l’identifiant de session dans une requête HTTP
n Protocoles FTP, SMTP, …
n Flux Audio/Vidéo, …
n Rappel : Redirection (301) de la requête HTTP
Performance grâce aux caches
n 2 types de page
n Dynamique
n Le contenu varie à chaque requête
n Le contenu peut rester constante pour un client au cours de sa session
n Statique
n Le contenu ne varie pas jusqu’à la prochaine modification
n Exemple : Mise à jour des nouvelles du jour tous les matins à 7H00 GMT
n Les caches
n dans les proxys et dans les navigateurs
n utilise la date d’expiration du document
n Conseil
n Pour éviter que le navigateur recharge le document inutile (ce qui
charge le serveur), configurez les dates d’expiration des documents
sur le serveur Web et dans les entêtes des réponses des scripts.

83

Les Moteurs d ’Indexation (i)


n L ’utilisateur utilise deux modes de parcours d ’un site
n Le suivi de liens
n La recherche Full-Text par combinaison de mots-clé et de concepts
n (antoine NEAR(15) cléopatre) AND NOT césar
n Recherche Plein Texte (Full-Text)
n pré-indexation du corpus documentaire
n Remarque : le corpus peut provenir du Web (i.e. Portails)
n Problème : les documents générés à la volée
n le script /cgi-bin/search interroge l ’index généré en Offline

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

HTTP dans le JDK


n Fonctionnalité
n Implémente directement un client HTTP
n java.net.URL

n java.net.URLConnection

n java.net.HttpURLConnection

n java.net.JarURLConnection

n récupère un InputStream sur le document distant


n Usage
n robot de récupération, ...
n dialogue client-serveur en tunneling HTTP/TCPIP
avec un serveur HTTP
n voir l ’exemple du compteur sur [Orfali]
n Voir le cours « Programmation Réseau en Java »
HTTP dans le HTML
n Eléments META dans l ’élément HEAD d ’un document HTML
3.2
n <META HTTP-EQUIV=name CONTENT=value>
n équivalent à ajouter des Header ’s
n 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 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&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 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 !

n La traduction en français 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 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

n Revue IEEE Internet Computing http://www.computer.org/internet


n 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 générale sur les composants d ’un SI
n 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
n C. Leloup, “Moteurs d'Indexation et de Recherche”, Ed. Eyrolles, 1998,
ISBN 2-212-08976-7

93