Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parÈve Noël Modifié depuis plus de 6 années
1
Assises du Web: Clients, Serveurs et Communication
CSI 3540 STRUCTURES ET NORMES DU WEB Assises du Web: Clients, Serveurs et Communication
2
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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 ( ) 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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çus 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 : nombre (32 bits en IPv4; 128 bits en IPv6) 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 CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
9
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
IP Fonction IP : transférer des données du périphérique source vers le périphérique de destination Le 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êmes Si 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
IP Source Network 1 Gateway Destination Gateway Network 3 Network 2 CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
11
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
IP Source LAN 1 Gateway Destination Gateway LAN 2 Internet Backbone 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 Assure une communication bidirectionnelle (duplex intégral) CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
13
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
TCP – Vue Simplifiée { Source Destination Puis-je m'adresser à vous? Etablir une connexion. OK. Puis-je m'adresser à vous? OK. Envoyer des paquets avec accusé de réceptiont. { Voici un paquet. Je l’ai eu. { Voici un paquet. Renvoyez les paquets si aucun accusé de réception (ou retardé). Voici un paquet expiré. Je l’ai eu. CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
14
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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 – Vue Simplifiée (Suite)
Rectangle: applications Ovales: donneés transmises Numéro cerclés: Ordre d’exécution des operations de 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'Internet Mappage entre les noms d'hôte et adresses IP DNS utilise souvent le protocole UDP pour la communication Nom d’hôte (‘host name’) Faits d’étiquettes séparées par des points, p.ex. L’étiquette finale est le domaine de premier niveau Générique: .com, .org, etc. Code de pays: .us, .il, .ca, etc. CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
18
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
DNS Les domaines de 1er niveau (créés par ICANN) sont divisés en domaines de deuxième niveau, qui peuvent être encore divisés en sous-domaines, etc.. Dans 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, est le nom de domaine complet CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
19
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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’adresse 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
DNS ipconfig (sous windows) peut être utilisé pour trouver l'adresse IP de votre machine ipconfig /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éphonique TCP ~ appeler quelqu’un qui répond, avoir une conversation et racrocher UDP ~ appeler quelqu’un et laisser un message DNS ~ 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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/programmes 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
HTTP Les informations transmises via le protocole HTTP sont souvent entièrement du texte On 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
HTTP { Connecter $ telnet 80 Trying Connected to ( ). Escape character is ’^]’. GET / HTTP/1.1 Host: HTTP/ OK Date: Thu, 09 Oct :30:49 GMT … { Envoyer Une requête { Recevoir une réponse CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
29
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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 Version du HTTP CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
32
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Requête HTTP URI (Uniform Resource Identifier) Syntaxe: schème : hostname Request-URI Ex: Dans on a: schème : http host name : 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Requête HTTP Méthodes de requêtes usuelles: GET, POST, HEAD, OPTIONS, PUT, … GET Utilisé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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Requête HTTP Structure des champs de l’en-tête: field name : field value Syntaxe 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 / subtype Exemples: 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.1 Une valeur de la qualité s'applique à tous les items la précédant Une valeur numérique élevée signifie une plus grande préférence Des 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Réponse HTTP Ligne de status Exemple: HTTP/ 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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 CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
47
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
48
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Cache du Client Un cache est une copie locale des informations obtenues auprès d'autres sources La 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Cache du Client Client Server 1. Requête HTTP pour une image Browser Serveur Web 2. Réponse HTTP contenant l’image 3. Stocker l’image Cache CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
51
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Cache du Client Client Serveur Browser Serveur Web J'ai besoin de cette image à nouveau ... Cache CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
52
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Cache du Client Client Serveur Browser Serveur Web Alternative 1 … Requête HTTP pour une image Réponse HTTP contenant l’image J'ai besoin de cette image à nouveau ... Cache CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
53
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Cache du Client Client Serveur Browser Serveur Web J'ai besoin de cette image à nouveau ... Obtenir l’image … ou Alternative 2 Cache CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
54
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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 ,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 ASCII Le jeu de caractères US-ASCII peut être utilisé pour des documents web, mais n'est pas recommandé UTF-8 et ISO 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 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Navigateurs Web CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
62
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
URL de HTTP port path query fragment host authority Request-URI Le navigateur utilise une autorité pour se connecter via TCP Request-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) CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
64
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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 1995 Apache: 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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 inactives Possibilité 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Serveur Web Tomcat Administration du serveur basé sur le HTML Recherchez 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Serveur Web Tomcat CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
72
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Serveur Web Tomcat CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
73
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Serveur Web Tomcat CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
74
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Serveur Web Tomcat CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
76
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Serveur Web Tomcat CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
78
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Serveur Web Tomcat Le contexte fournit le mappage du chemin d'accès de l’URI de la requête à une application web Le champs ‘Document Base’ est un répertoire (éventuellement par rapport à ‘Application Base’) qui contient les ressources pour cette application web Pour cet exemple, en accédant à on retourne une ressource de c:\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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Serveur Web Tomcat Un journal d’accès enregistre les requêtes HTTP Les paramètres définis à l'aide de AccessLogValve L'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: admin [20/Jul/2005:08:03: ] "GET /admin/frameset.jsp HTTP/1.1" CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
80
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
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 clandestine Le schème d'URL https indique au navigateur d'utiliser le cryptage Encryptages 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
CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Serveurs Sécurisés Je tiens à vous parler en sécurité (sur le port 443) Browser TLS/ SSL TLS/ SSL Serveur Web Requêtes HTTP Requêtes HTTP 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é Réponses HTTP Réponses HTTP Voici une réponse HTTP chiffrée 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’
Fake DNS Server Fake What’s IP address for My credit card number is… Browser Real 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’
Fake DNS Server Fake What’s IP address for Send me a certificate of identity Browser Real CSI 3540 : I. Kiringa : notes basées sur J.C. Jackson et G.V. Jourdan
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.