assises du web: clients, serveurs et communication csi 3540 structures et normes du web
TRANSCRIPT
Assises du Web: Clients, Serveurs et Communication
CSI 3540
STRUCTURES ET NORMES DU WEB
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan2
Internet
Origines techniques: ARPANET (Fin années 1960)
Une des premières tentatives de résauter des ordinateurs hétérogènes et géographiquement dispersés
Courriel disponibles sur ARPANET en1972
Accès à ARPANET limité à un groupe select financé par le dept de la defense (DoD)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 3
Internet
Réseaux libre accès: Réseaux universitaires régionaux (p.ex. SURAnet) CSNET des départments d’informatique n’etait pas sur
ARPANET
NSFNET (1985-1995) Objectif principal: connecter des superordinateurs Objectif secondaire: fournir l'épine dorsale pour se
connecter à des réseaux régionaux
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 4
Internet
Les 6 centres de superordinateurs reliés par la dorsale NSFNET originale
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 5
Internet
Vitesse de backbone NSFNET original : 56 kbit/s Mise à jour à 1,5 Mbit/s (T1) en 1988 Mise à jour à 45 Mbit/s (T3) en 1991 En 1988 connection de réseaux au Canada et en
France sur NSFNET En 1990, ARPANET est mis hors service,
NSFNET devient le centre de l'internet
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 6
Internet
Internet : le réseau des réseaux connecté via un réseau public (backbone) et communiquant à l'aide du protocole de communication TCP/IP
Backbone initialement fourni par NSFNET, financés par le secteur privé (frais d'ISP) depuis 1995
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 7
Protocoles Internet
Protocole de communication : Comment les ordinateurs ‘parlent’ entr’eux
Cfr protocole du téléphone: comment prendre ou terminer un appel; quelle langue parler, etc..
Protocoles Internet développés comme partie de la recherche de l'ARPANET
ARPANET a commencé à l'aide de TCP/IP en 1982
Conçu pour une utilisation dans des réseaux locaux (LAN) et entre ceux-ci
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 8
Protocole Internet (IP)
IP est le protocole fondamental définissant l'Internet (comme son nom l'indique!)Adresse IP : numéro de 32 bits (en IPv4) associé au
maximum avec un seul périphérique à la fois (même si le périphérique peut en avoir plusieurs)
écrit sous forme de quatre octets séparés par des points, par exemple 192.0.34.166
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 9
IP
Fonction IP : transférer des données du périphérique source vers le périphérique de destinationLe logiciel de l’IP source crée un paquet qui
représente les données En-tête (‘Header ’) : les adresses IP source et de
destination, la longueur des données, etc.. Données elles-mêmesSi la destination est sur un autre réseau local, le paquet
est envoyé vers une passerelle (‘Gateway ’) qui se connecte à plusieurs réseaux
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 10
IP
Source
Gateway
Gateway
Network 1
Network 2
Destination
Network 3
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 11
IP
Source
Gateway
Gateway
LAN 1
Internet Backbone
Destination
LAN 2
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 12
Protocole de Contrôle de la Transmission (TCP)
Limitations du IP: Aucune garantie de livraison de paquets (paquets
peuvent être abandonnés) La communication est à sens unique (source à la
destination)TCP ajoute le concept d'une connexion sur le
dessus de IP Garantit que les paquets soient livrés Assurer une communication bidirectionnelle (duplex
intégral)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 13
TCP
Source Destination
Puis-je m'adresser à vous?
OK. Puis-je m'adresser à vous?
OK.
Voici un paquet.
Je l’ai eu.
Voici un paquet.
Voici un paquet renvoyé.
Je l’ai eu.
Etablir une connexion. {
{
{
Envoyer des paquets avec accusé de réceptiont.
Renvoyez lespaquets si aucun accusé de réception (ou retardé).
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 14
TCP
TCP ajoute également le concept d'un port En-tête TCP contient le numéro de port qui représente un
programme d'application sur l'ordinateur de destination Certains numéros de ports ont des significations
standards Exemple : port 25 est normalement utilisé pour le courrier
électronique transmis en utilisant le SMTP (Simple Mail Transfer Protocol)
Autres numéros de ports sont disponibles selon le mode premier-arrivé, premier servi à n'importe quelle application
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 15
TCP
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 16
User Datagram Protocol (UDP)
Similaire au TCP car: Construit sur IP Fournit un concept de port
Non-similaire au TCP car: Pas de concept de connexion Pas de garantie de transmission
Avantage de UDP vs. TCP: Leger et donc rapide pour des messages uniques
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 17
Domain Name Service (DNS)
DNS est l’« annuaire » pour l'InternetMappage entre les noms d'hôte et adresses IP DNS utilise souvent le protocole UDP pour la communication
Noms d’hôte (‘host names’) Étiquettes séparées par des points, p.ex. www.unesco.org L’étiquette finale est le domaine de premier niveau
Générique: .com, .org, etc.Code de pays: .us, .il, etc.
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 18
DNS
Les domaines de 1er niveau sont divisés en domaines de deuxième niveau, qui peuvent être encore divisés en sous-domaines, etc..
Dans www.unesco.com, unesco est un domaine de second niveau
Un nom d'hôte et un nom de domaine sont appelées le nom de domaine complet de l'ordinateur
P.ex. www est le nom d’hôte, www.unesco.com est le nom de domaine complet
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 19
DNS
Le programme nslookup permet d'accéder en ligne de commande au DNS (sur la plupart des systèmes)Rechercher un nom d'hôte à partir d’une adresse IP
donnée est connue comme une recherche inversée Rappelons qu’un seul hôte peut avoir plusieurs adresses IP L’dresse retournée est l’adresse IP canonique utilisée dans
le système DNS
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 20
DNS
ipconfig (sous windows) peut être utilisé pour trouver l'adresse IP de votre machineipconfig /displaydns affiche le
contenu du Cache de résolution DNS(ipconfig /flushdns l’efface)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 21
Analogie au Réseau Téléphonique
IP ~ réseau téléphoniqueTCP ~ appeler quelqu’un qui répond, avoir
une conversation et racrocherUDP ~ appeler quelqu’un et laisser un
messageDNS ~ répertoire téléphonique
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 22
Protocoles de Haut Niveau
De nombreux protocoles sont construits sur TCP Analogie du téléphone: TCP spécifie comment initier et
mettre fin à l'appel téléphonique, mais certains autres protocoles spécifient comment continuer la conversation réellement
Quelques exemples: SMTP (courriel) (port 25) FTP (transfert de fichiers) (port 21) HTTP (transfert de documents Web) (port 80)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 23
World Wide Web
A l'origine, l'un de nombreux systèmes pour organiser l'information sur Internet
Concurrence: WAIS (Wide Area Info System), Gopher, ARCHIE
Particularité du Web : prise en charge de l'hypertexte (texte contenant des liens)
Communication via le protocole de transport d’hypertexte (HTTP)
Représentation du document utilisant le langage de balisage Hypertexte (HTML)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 24
World Wide Web
Le Web est la collection d'ordinateurs (serveurs Web) sur Internet qui fournissent des informations, notamment les documents HTML, par l'intermédiaire de HTTP.Les machines qui accèdent aux informations
sur le Web sont appelées des clients Web. Un navigateur Web est un logiciel utilisé par un utilisateur pour accéder au Web.
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 25
Hypertext Transport Protocol (HTTP)
HTTP est basé sur le modèle de communication demande-réponse :
le Client envoie une requête, le serveur envoie une réponse
HTTP est un protocole sans état : le protocole n'exige pas du serveur de se rappeler
quoi que ce soit sur le client entre les demandes.
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 26
HTTP
Mise en œuvre normalement sur une connexion TCP (80 est le numéro de port standard pour HTTP)Interaction typique navigateur / serveur: L’utilisateur entre l'adresse Web dans le navigateur Le navigateur utilise DNS pour localiser l'adresse IP Le navigateur ouvre une connexion TCP au serveur Le navigateur envoie une demande HTTP via la connexion Le serveur envoie la réponse HTTP au navigateur via la
connexion Le navigateur affiche le corps de la réponse dans la zone
cliente de la fenêtre du navigateur
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 27
HTTP
Les informations transmises via le protocole HTTP sont souvent entièrement du texteOn peut utiliser le protocole Telnet sur
Internet pour simuler la demande du navigateur et découvrir la réponse du serveur
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 28
HTTP
$ telnet www.example.org 80Trying 192.0.34.166...Connected to www.example.com (192.0.34.166).Escape character is ’^]’.GET / HTTP/1.1Host: www.example.org
HTTP/1.1 200 OKDate: Thu, 09 Oct 2003 20:30:49 GMT…
{EnvoyerUne requête
{Recevoir uneréponse
Connecter {
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 29
Requête HTTP
Structure de la requête: ligne de démarrage en-tête (un ou plusieurs champs) ligne vide Corps optionel
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 30
Requête HTTP
Structure de la requête: Ligne de démarrage En-tête (un ou plusieurs champs) Ligne vide Corps optionel
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 31
Requête HTTP
Ligne de démarrage Example: GET / HTTP/1.1Trois parties séparées par des espaces: Méthode de requête HTTP URI (Uniform Resource Identifier) de la requête Version du HTTP
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 32
Requête HTTP
Ligne de démarrage Example: GET / HTTP/1.1
Trois parties séparées par des espaces: Méthode de requête HTTP URI (Uniform Resource Identifier) de la requête HTTP version
Nous couvrirons la version1.1 (l’exemple donné)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 33
Requête HTTP
Ligne de démarrage Example: GET / HTTP/1.1
Trois parties séparées par des espaces: Méthode de requête HTTP URI de la requête Version HTTP
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 34
Requête HTTP
URI (Uniform Resource Identifier) Syntaxe: schème : hostname Request-URIEx: Dans http://www.example.com/, on a:
schème : http host name : www.example.com request-URI : /
Toute la chaine composée de ces 3 ingredients est appelée URI.
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 35
URI
Il y a deux types de URI: URN (Uniform Resource Name)
Peut être utilisé pour identifier des ressources avec des noms uniques, à l’exemple des livres (qui ont un ISBN unique)
Schème : urn URL (Uniform Resource Locator )
Spécifie l'emplacement où vous trouverez une ressource
Schèmes: http, https, ftp, mailto, file
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 36
Requête HTTP
Ligne de démarrage Example: GET / HTTP/1.1
Trois parties séparées par des espaces: Méthode de la requête HTTP URI (Uniform Resource Identifier) de la requête Version du HTTP
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 37
Requête HTTP
Méthodes de requêtes usuelles: GET, POST, HEAD, OPTIONS, PUT, …
GETUtilisée si vous cliquez sur le lien ou l'adresse est tapée
dans le navigateur. Aucun corps dans la requête ! POST
Utilisée quand vous cliquez sur le bouton ‘soumettre’ dans un formulaire
L’info du formulaire contenue dans le corps de la requête HEAD
Demande que les champs d'en-tête uniquement (pas de corps) soient retournées dans la réponse
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 38
Requête HTTP
Structure d’une requête: Ligne de démarrage Champs de l’en-tête Ligne vide Corps optionel
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 39
Requête HTTP
Structure des champs de l’en-tête: field name : field valueSyntaxe Nom du champ n'est pas sensible aux majuscules La valeur de champ peut continuer sur plusieurs lignes en
commençant les lignes continues avec des espaces blancs Les valeurs de champ peuvent contenir des types MIME,
les valeurs de qualité et les caractères génériques (* )
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 40
MIME (Multipurpose Internet Mail Extensions)
Convention pour spécifier le type de contenu d'un message
En HTTP, généralement utilisée pour spécifier le type de contenu du corps de la réponse
Syntaxe du type de contenu MIME: top-level type / subtypeExemples: text/html, image/jpeg
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 41
Valeurs de Qualité HTTP et Caractères Génériques
Champ d'en-tête avec des valeurs de qualité:accept: text/xml,text/html;q=0.9, text/plain;q=0.8, image/jpeg, image/gif;q=0.2,*/*;q=0.1Une valeur de la qualité s'applique à tous les items
la précédantUne valeur numérique élevée signifie une plus
grande préférenceDes caractères génériques spécifient la qualité 0.1
pour les MIMEs non spécifiées précédemment
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 42
Requête HTTP
Champs d’en-tête usuels: Host : URL du nom d'hôte (obligatoire) User-Agent: type de navigateur envoyant la demande Accept: types MIME de documents acceptables Connection: valeur close indique au serveur de fermer la
connexion après chaque séquence de requête/réponse Content-Type: Type MIME du corps des requêtes POST Content-Length: nombre d’octets dans le corps du
message Referer: URL du document contenant le lien qui fourni des
URI pour cette requête HTTP
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 43
Réponse HTTP
Structure de la réponse: ligne de status champs d’en-tête ligne vide corps optionel
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 44
Réponse HTTP
Structure de la réponse: Ligne de status champs d’en-tête ligne vide corps optionel
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 45
Réponse HTTP
Ligne de status Exemple: HTTP/1.1 200 OK
Trois parties séparées par des espaces: version HTTP code de status raison (le code en clair!)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 46
Réponse HTTP
Code de status Nombre à 3 chiffres Le premier chiffre est la classe du code de status:
1=Informationel 2=Succès 3=Redirection (URL alternatif fournis) 4=Erreur du client 5=Erreur du serveur
Les 2 autres chiffres fournissent de l’info additionnelle Voir http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 47
Réponse HTTP
Structure de la réponse:Ligne de statuschamps d’en-têteligne videcorps optionel
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 48
Réponse HTTP
Champs usuels dans l’en-tête: Connection, Content-Type, Content-Length Date: date et l'heure au cours de laquelle la réponse a été
générée (requise) Location: URI de rechange si le statut est la redirection Last-Modified: date et heure auxquelles la ressource
demandée a été modifiée sur le serveur Expires: date et l'heure après laquelle la copie du client de la
ressource sera obsolète ETag: un identificateur unique pour cette version de la
ressource demandée (changements si la ressource change)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 49
Cache du Client
Un cache est une copie locale des informations obtenues auprès d'autres sourcesLa plupart des navigateurs web utilisent un
cache pour stocker les ressources demandées afin que les demandes suivantes pour la même ressource n'exige pas nécessairement une requête/réponse HTTP
Ex: icône qui apparaît plusieurs fois dans une page Web
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 50
Cache du Client
Browser Serveur Web
1. Requête HTTP pour une image
2. Réponse HTTP contenant l’image
Client Server
Cache
3. Stocker l’image
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 51
Cache du Client
Browser Serveur Web
Client Serveur
Cache
J'ai besoin de cette image à nouveau ...
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 52
Cache du Client
Browser Serveur Web
Client Serveur
Cache
J'ai besoin de cette image à nouveau ...
Requête HTTP pour une image
Réponse HTTP contenant l’image
Alternative 1 …
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 53
Cache du Client
Browser Serveur Web
Client Serveur
Cache
J'ai besoin de cette image à nouveau ...
Obtenir l’image
… ou Alternative 2
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 54
Cache du Client
Les avantages du cache (Beaucoup) plus rapide que la demande/réponse
HTTP Moins d’utilisation du réseau Moins de charge sur le serveur
Désavantage du cache La copie mise en cache de la ressource peut être
non valide (incompatible avec la version originale)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 55
Cache du Client
Validation de la resource en cache: Envoyer un message HTTP HEAD demander et vérifier
la dernière modification ou le ETag de l’en-tête de la réponse
Comparer la date/heure actuelle avec l'en-tête Expires envoyée dans réponse contenant la ressource
Si aucune en-tête d'expiration n’a été envoyée, utilisez un algorithme heuristique pour estimer la valeur d'expiration
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 56
Ensemble de Caractères
Chaque document est représenté par une chaîne de valeurs entières (points de code)Le mappage des points de code aux caractères est
défini par un jeu de caractères (‘Character set’ )Certains champs d'en-tête ont comme valeurs des jeux
de caractères: Accept-Charset: champs d’en-tête de requête listant
le jeu de caractères que le client peut reconnaître Ex: accept-charset: ISO-8859-1,utf-8;q=0.7,*;q=0.5
Content-Type: peut inclure le jeu de caractères utilisé pour représenter le corps du message HTTP Ex: Content-Type: text/html; charset=UTF-8
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 57
Ensemble de Caractères
Techniquement, plusieurs « jeux de caractères » sont en fait des encodages de caractères
Un encodage représente les points de code à l'aide de chaînes d'octets de longueur variable
Les exemples les plus courants sont les encodages UTF-8 et UTF-16 basés sur Unicode
IANA maintient une liste complète des jeux/encodages de caractères reconnus sur Internet
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 58
Ensemble de Caractères
Un PC US ordinaire produit des documents ASCIILe jeu de caractères US-ASCII peut être utilisé pour
des documents web, mais n'est pas recommandéUTF-8 et ISO-8859-1 sont des sur-ensembles d'US-
ASCII et assurent la compatibilité internationale UTF-8 peut représenter tous les caractères ASCII à l'aide d'un seul
octet et des caractères Unicode arbitraires en utilisant jusqu'à 4 octets ISO-8859-1 est un code à 1 octet possédant de nombreux
caractères communs en Europe occidentale, comme é
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 59
Clients Web
Beaucoup de clients web possibles: "browser" à texte seulement (lynx) Téléphones mobiles Robots (clients logiciel uniquement, par
exemple, « robots » des moteurs de recherche) etc.
Nous nous concentrerons sur les navigateurs web traditionnels
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 60
Navigateurs Web
Premier navigateur graphique fonctionnant sur des plates-formes à usage général : mosaïque (1993)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 61
Navigateurs Web
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 62
Navigateurs Web
Tâches principales: Convertir les adresses web (URL) en demandes
HTTP Communiquer avec les serveurs web via HTTP Afficher convenablement les documents
renvoyés par un serveur de documents
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 63
URL de HTTP
Le navigateur utilise une autorité pour se connecter via TCPRequest-URI inclu dans la ligne de départ (/ utilisé pour le
chemin d'accès si aucun n’est fourni)L’identificateur de fragment n’est pas envoyé au serveur
(utilisé seulement pour faire défiler la zone client du navigateur)
http://www.example.org:56789/a/b/c.txt?t=win&s=chess#para5
host port
authority
path query fragment
Request-URI
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 64
Navigateurs Web
Fonctionalité standard Enregistrer la page web sur le disque Rechercher une chaîne dans la page Remplir automatiquement des formulaires (mots de
passe, numéros de CC,...) Définir les préférences (langue, jeu de caractères, cache
et paramètres HTTP) Modifier le style d'affichage (par exemple, augmentation
des tailles de police) Afficher les infos brutes d'en-tête HTML et HTTP (p. ex.,
Last-Modified) Afficher l'historique des adresses web visitées Signet des pages favorites pour des retours simples
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 65
Navigateurs Web
Fonctionalité additionnelle: Exécution de scripts (par exemple, les menus déroulants) Gestion des événements (par exemple, les clics de souris) GUI pour les contrôles (par exemple, les boutons) Sécuriser la communication avec les serveurs Affichage des documents non-HTML (par exemple PDF)
par l'intermédiaire de plug-ins
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 66
Serveurs Web
Fonctionalité de base: Recevoir la requête HTTP via TCP Mapper l'en-tête d'hôte à un hôte virtuel spécifique (l'un
des nombreux noms d'hôte qui partage une adresse IP) Mapper le Request-URI à la ressource spécifique
associée à l'hôte virtuel Fichier : Fichier retourné dans la réponse HTTP Programme : lancer le programme et renvoyer le résultat dans la
réponse HTTP Mapper le type de ressource au type MIME approprié et
l'utiliser pour définir l'en-tête Content-Type dans la réponse HTTP
Journaliser l’information sur la demande et la réponse
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 67
Serveurs Web: Exemples
httpd : UIUC, le principal serveur Web utilisé vers 1995Apache: version de httpd, maintenant le serveur les plus
populaire (en particulier sur les plates-formes Linux)IIS: ‘Microsoft Internet Information Server’Tomcat: Basé sur Java Fournit un conteneur (Catalina) pour exécuter des Java
servlets (programmes de génération de HTML) comme back-end pour Apache ou IIS
Peut exécuter en autonomie à l'aide du front-end HTTP Coyote
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 68
Serveurs Web
Certains paramètres de communication de Coyote: Adresses IP autorisées/bloquées Max. connexions TCP actives simultanées Max. demandes en file d'attente de connexion TCP Temps « Keep-alive » pour les connexions TCP
inactivesPossibilité de modifier les paramètres pour régler
les performances du serveur
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 69
Serveurs Web
Certains paramètres du conteneur Catalina: Les noms d'hôtes virtuels et les ports associés Préférences de journalisation Mappage du Request-URI aux ressources du
serveur Mots de passe pour la protection des ressources Utilisation de la mise en cache côté serveur
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 70
Serveur Web Tomcat
Administration du serveur basé sur le HTMLRecherchez http://localhost:8080 et
cliquez sur le lien ‘Server Administration’ localhost est un nom d'hôte spécial qui
signifie « cette machine »
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 71
Serveur Web Tomcat
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 72
Serveur Web Tomcat
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 73
Serveur Web Tomcat
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 74
Serveur Web Tomcat
Quelques champs du Connecteur: Numéro de port : port « possédé » par ce
connecteur Nombre maximal de Threads : max connexions
traitées simultanément Délai de connexion : temps keep-alive
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 75
Serveur Web Tomcat
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 76
Serveur Web Tomcat
Chaque hôte est un hôte virtuel (on peut en avoir plusieurs par connecteur)Quelques champs: Host: « localhost » ou un nom de domaine complet Application Base: Répertoire (peut être le
chemin relatif au répertoire d'installation de JWSDP) contenant des ressources associées à cet hôte
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 77
Serveur Web Tomcat
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 78
Serveur Web Tomcat
Le contexte fournit le mappage du chemin d'accès de l’URI de la requête à une application webLe champs ‘Document Base’ est un répertoire
(éventuellement par rapport à ‘Application Base’) qui contient les ressources pour cette application webPour cet exemple, en accédant à
http://localhost:8080/ on retourne une ressource dec:\jwsdp-1.3\webapps\ROOT
Retourne index.html (fichier de bienvenue standard)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 79
Serveur Web Tomcat
Un journal d’accès enregistre les requêtes HTTPLes paramètres définis à l'aide de AccessLogValveL'emplacement par défaut : journaux/access_log.* sous
le répertoire d'installation de JWSDP (Java Web Service Developer Pack )Exemple d’entrée dans le journal (une ligne:
www.example.org - admin [20/Jul/2005:08:03:22 -0500] "GET /admin/frameset.jsp HTTP/1.1" 200 920
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 80
Serveur Web Tomcat
Autres journaux fournis par défaut dans JWSDP: ‘Message’ journalise les messages envoyés au service de
journalisation par les applications web ou par Tomcat lui-même logs/jwsdp_log. *: journal des messages par défaut logs/localhost_admin_log. *: journal des messages
pour les applications web dans le contexte /admin ‘System.out’ et ‘System.err’ (traces d'exception souvent
trouvés ici): logs/launcher.server.log
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 81
Serveur Web Tomcat
Contrôle d’accès: Protection par mot de passe (p.ex. Pages admin)
Utilisateurs et rôles définis dans
conf/tomcat-users.xml Refuser l'accès aux machines
Utile pour refuser l'accès à certains utilisateurs en interdisant l'accès à partir des machines qu'ils utilisent
Liste des ordinateurs refusés placée dans RemoteHostValve (refuser de nom d'hôte) ou RemoteAddressValve (nier par adresse IP)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 82
Serveurs Sécurisés
Étant donné que les messages HTTP voyagent généralement via un réseau public, les informations personnelles (telles que les numéros de carte de crédit) doivent être chiffrées pour empêcher l'écoute clandestineLe schème d'URL https indique au navigateur
d'utiliser le cryptageEncryptages standards usuels: ‘Secure Socket Layer’ (SSL) ‘Transport Layer Security’ (TLS)
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 83
Serveurs Sécurisés
Browser Serveur Web
Je tiens à vous parler en sécurité (sur le port 443)
Voici mes données de certificats et de chiffrement
Voici une requête HTTP chiffrée
Voici une réponse HTTP chiffrée
Voici une demande HTTP chiffré
Voici une réponse HTTP chiffrée
TLS/SSL
TLS/SSL
Requêtes HTTP
Réponses HTTP
Requêtes HTTP
Réponses HTTP
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 84
Serveurs Sécurisés:‘Man-in-the-Middle Attack’
Browser
FakeDNS
Server
What’s IPaddress forwww.example.org?
100.1.1.1
Fakewww.example.org
100.1.1.1
Realwww.example.org
My credit card number is…
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan 85
Serveurs Sécurisés:Empêcher le ‘Man-in-the-Middle’
Browser
FakeDNS
Server
What’s IPaddress forwww.example.org?
100.1.1.1
Fakewww.example.org
100.1.1.1
Realwww.example.org
Send me a certificate of identity