assises du web: clients, serveurs et communication csi 3540 structures et normes du web

85
Assises du Web: Clients, Serveurs et Communication CSI 3540 STRUCTURES ET NORMES DU WEB

Upload: andrion-guilbaud

Post on 04-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Assises du Web: Clients, Serveurs et Communication CSI 3540 STRUCTURES ET NORMES DU WEB

Assises du Web: Clients, Serveurs et Communication

CSI 3540

STRUCTURES ET NORMES DU WEB

Page 2: 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)

Page 3: 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. 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

Page 4: 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. Jourdan 4

Internet

Les 6 centres de superordinateurs reliés par la dorsale NSFNET originale

Page 5: 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. 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

Page 6: 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. 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

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

Page 8: 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. 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

Page 9: 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. 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

Page 10: 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. Jourdan 10

IP

Source

Gateway

Gateway

Network 1

Network 2

Destination

Network 3

Page 11: 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. Jourdan 11

IP

Source

Gateway

Gateway

LAN 1

Internet Backbone

Destination

LAN 2

Page 12: 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. 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)

Page 13: 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. 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é).

Page 14: 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. 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

Page 15: 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. Jourdan 15

TCP

Page 16: 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. 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

Page 17: 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. 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.

Page 18: 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. 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

Page 19: 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. 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

Page 20: 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. 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)

Page 21: 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. 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

Page 22: 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. 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)

Page 23: 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. 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)

Page 24: 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. 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.

Page 25: 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. 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.

Page 26: 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. 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

Page 27: 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. 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

Page 28: 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. 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 {

Page 29: 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. 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

Page 30: 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. 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

Page 31: 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. 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

Page 32: 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. 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é)

Page 33: 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. 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

Page 34: 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. 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.

Page 35: 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. 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

Page 36: 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. 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

Page 37: 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. 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

Page 38: 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. Jourdan 38

Requête HTTP

Structure d’une requête: Ligne de démarrage Champs de l’en-tête Ligne vide Corps optionel

Page 39: 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. 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 (* )

Page 40: 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. 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

Page 41: 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. 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

Page 42: 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. 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

Page 43: 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. Jourdan 43

Réponse HTTP

Structure de la réponse: ligne de status champs d’en-tête ligne vide corps optionel

Page 44: 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. Jourdan 44

Réponse HTTP

Structure de la réponse: Ligne de status champs d’en-tête ligne vide corps optionel

Page 45: 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. 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!)

Page 46: 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. 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

Page 47: 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. Jourdan 47

Réponse HTTP

Structure de la réponse:Ligne de statuschamps d’en-têteligne videcorps optionel

Page 48: 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. 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)

Page 49: 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. 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

Page 50: 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. 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

Page 51: 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. Jourdan 51

Cache du Client

Browser Serveur Web

Client Serveur

Cache

J'ai besoin de cette image à nouveau ...

Page 52: 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. 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 …

Page 53: 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. Jourdan 53

Cache du Client

Browser Serveur Web

Client Serveur

Cache

J'ai besoin de cette image à nouveau ...

Obtenir l’image

… ou Alternative 2

Page 54: 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. 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)

Page 55: 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. 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

Page 56: 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. 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

Page 57: 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. 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

Page 58: 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. 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 é

Page 59: 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. 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

Page 60: 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. Jourdan 60

Navigateurs Web

Premier navigateur graphique fonctionnant sur des plates-formes à usage général : mosaïque (1993)

Page 61: 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. Jourdan 61

Navigateurs Web

Page 62: 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. 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

Page 63: 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. 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

Page 64: 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. 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

Page 65: 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. 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

Page 66: 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. 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

Page 67: 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. 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

Page 68: 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. 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

Page 69: 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. 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

Page 70: 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. 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 »

Page 71: 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. Jourdan 71

Serveur Web Tomcat

Page 72: 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. Jourdan 72

Serveur Web Tomcat

Page 73: 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. Jourdan 73

Serveur Web Tomcat

Page 74: 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. 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

Page 75: 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. Jourdan 75

Serveur Web Tomcat

Page 76: 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. 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

Page 77: 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. Jourdan 77

Serveur Web Tomcat

Page 78: 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. 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)

Page 79: 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. 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

Page 80: 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. 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

Page 81: 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. 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)

Page 82: 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. 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)

Page 83: 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. 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

Page 84: 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. 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…

Page 85: 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. 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