157
3 3 . La couche application . La couche application Jusqu’ici, nous avons décrit un Jusqu’ici, nous avons décrit un système qui permet d’obtenir un système qui permet d’obtenir un transport fiable de transport fiable de l’information d’un point à un l’information d’un point à un autre sur le globe. autre sur le globe. Voyons maintenant à quoi ce Voyons maintenant à quoi ce système va bien nous servir. système va bien nous servir.

3 . La couche application

  • Upload
    niran

  • View
    29

  • Download
    3

Embed Size (px)

DESCRIPTION

3 . La couche application. Jusqu’ici, nous avons décrit un système qui permet d’obtenir un transport fiable de l’information d’un point à un autre sur le globe. Voyons maintenant à quoi ce système va bien nous servir. La couche application. Nous étudierons quelques protocoles applicatifs : - PowerPoint PPT Presentation

Citation preview

Page 1: 3 . La couche application

33. La couche application. La couche application

Jusqu’ici, nous avons décrit un système Jusqu’ici, nous avons décrit un système qui permet d’obtenir un transport fiable de qui permet d’obtenir un transport fiable de l’information d’un point à un autre sur le l’information d’un point à un autre sur le globe.globe.

Voyons maintenant à quoi ce système va Voyons maintenant à quoi ce système va bien nous servir.bien nous servir.

Page 2: 3 . La couche application

La couche applicationLa couche application

Nous étudierons quelques protocoles Nous étudierons quelques protocoles applicatifs :applicatifs :DNS DNS La messagerie électroniqueLa messagerie électroniqueLe protocole Web : HTTPLe protocole Web : HTTP

Page 3: 3 . La couche application

DNS - IntroductionDNS - Introduction

Jusqu’ici nous pouvons dialoguer avec Jusqu’ici nous pouvons dialoguer avec n’importe quelle machine sur le réseau n’importe quelle machine sur le réseau pour autant qu’on connaisse son adresse pour autant qu’on connaisse son adresse IP.IP.

Cette adresse est relativement peu Cette adresse est relativement peu conviviale pour l’utilisateur, surtout s’il veut conviviale pour l’utilisateur, surtout s’il veut se rappeler fréquemment de plusieurs se rappeler fréquemment de plusieurs sites.sites.

Page 4: 3 . La couche application

DNS - IntroductionDNS - Introduction

De plus si une machine hébergeant un De plus si une machine hébergeant un service sur l’Internet doit changer service sur l’Internet doit changer d’adresse IP, tous les « clients » doivent d’adresse IP, tous les « clients » doivent être informés du changement.être informés du changement.Ceci n’est évidement pas acceptable !Ceci n’est évidement pas acceptable !

D’où l’introduction des D’où l’introduction des noms ASCIInoms ASCII..

Page 5: 3 . La couche application

DNS - IntroductionDNS - Introduction

Il est évidement plus facile de se rappeler Il est évidement plus facile de se rappeler que le site de l’entreprise « Cisco » est que le site de l’entreprise « Cisco » est www.cisco.comwww.cisco.com..

Toutefois, nous avons vu précédemment Toutefois, nous avons vu précédemment qu’aucune machine ne peut manipuler qu’aucune machine ne peut manipuler directement ce type d’adresse. directement ce type d’adresse.

Il est donc impératif de trouver un système Il est donc impératif de trouver un système qui puisse faire cette conversion.qui puisse faire cette conversion.

Page 6: 3 . La couche application

DNS - IntroductionDNS - Introduction

Au départ, dans le réseau ARPANet, il Au départ, dans le réseau ARPANet, il existait un fichier « hosts.txt » qui existait un fichier « hosts.txt » qui répertoriait tous les noms d’hôtes et leur répertoriait tous les noms d’hôtes et leur adresse IP correspondante.adresse IP correspondante.

Chaque nuit, toutes les machines Chaque nuit, toutes les machines téléchargeaient ce fichier depuis le site où téléchargeaient ce fichier depuis le site où il était géré.il était géré.

Tout ceci marchait bien, pour autant que le Tout ceci marchait bien, pour autant que le nombre de machine était limité.nombre de machine était limité.

Page 7: 3 . La couche application

DNS - IntroductionDNS - Introduction

Avec l’arrivée de millions de nouvelles Avec l’arrivée de millions de nouvelles machines, la gestion de ce fichier est machines, la gestion de ce fichier est devenue chaotique :devenue chaotique :La taille du fichier devenait de plus en plus La taille du fichier devenait de plus en plus

grandegrandeDe plus en plus de conflits de noms De plus en plus de conflits de noms

apparaissaientapparaissaient Il a donc été décidé de créer le système Il a donc été décidé de créer le système

DNS (DNS (Domain Name SystemDomain Name System))

Page 8: 3 . La couche application

DNS - IntroductionDNS - Introduction

Au cœur du système DNS, il y a :Au cœur du système DNS, il y a :Un schéma de nommage hiérarchique fondé Un schéma de nommage hiérarchique fondé

sur la notion de domainesur la notion de domaineUne base de données distribuée qui Une base de données distribuée qui

implémente ce schéma de nommage.implémente ce schéma de nommage.DNS est défini dans les RFC 1034 et DNS est défini dans les RFC 1034 et

1035.1035.

Page 9: 3 . La couche application

DNS - FonctionnementDNS - Fonctionnement

Application X

RésolveurServeur DNS

A quelle adresse se trouve le serveur www.cisco.com ?GetHostByName()

L’application X souhaite parler au serveur www.cisco.com

Envoi d’une requête au serveur DNS via UDP sur le port 53

Interrogation de la base de données DNS

Réponse : IP = w.x.y.z

Réponse : IP = w.x.y.z

Page 10: 3 . La couche application

DNS – L’espace de nomsDNS – L’espace de noms

La gestion d’un espace de noms sans cesse La gestion d’un espace de noms sans cesse changeant n’est pas sans poser des problèmes.changeant n’est pas sans poser des problèmes.

La poste gère un tel type d’espace de noms : La poste gère un tel type d’espace de noms : chaque courrier doit comporter :chaque courrier doit comporter : Le nom du pays (explicite ou implicite)Le nom du pays (explicite ou implicite) Le nom d’une province (optionnel)Le nom d’une province (optionnel) Le nom de localité Le nom de localité Le code postalLe code postal Le nom de rueLe nom de rue Le numéro de bâtimentLe numéro de bâtiment Le nom du destinataireLe nom du destinataire

Page 11: 3 . La couche application

DNS – L’espace de nomsDNS – L’espace de noms

Le système DNS fonctionne sur le même Le système DNS fonctionne sur le même principe.principe.

L’espace de noms est divisé en 200 L’espace de noms est divisé en 200 domaines de premier niveaudomaines de premier niveau (TLD – Top (TLD – Top Level Domain) qui couvrent chacun de Level Domain) qui couvrent chacun de nombreux hôtesnombreux hôtes

Chaque TLD est subdivisé en plusieurs Chaque TLD est subdivisé en plusieurs sous-domaines et ainsi de suite.sous-domaines et ainsi de suite.

L’ensemble forme un arbreL’ensemble forme un arbre

Page 12: 3 . La couche application

DNS – L’espace de nomsDNS – L’espace de noms

int com edu gov mil org net jp lu be fr …

sun

eng

yale

cs eng

ai linda

robot

acm ieee

www

uni restena cepl

www mail

Page 13: 3 . La couche application

DNS – L’espace de nomsDNS – L’espace de noms

Les feuilles de l’arbre représentent des Les feuilles de l’arbre représentent des domaines qui ne contiennent pas de sous domaines qui ne contiennent pas de sous domaine, mais bien des machines.domaine, mais bien des machines.

Un domaine feuille peut contenir une seule Un domaine feuille peut contenir une seule machine ou des milliers.machine ou des milliers.

Page 14: 3 . La couche application

DNS – L’espace de nomsDNS – L’espace de noms

Les TLD sont soit :Les TLD sont soit : Des types génériquesDes types génériques

Com = organismes commerciauxCom = organismes commerciaux Int = certaines organisations internationalesInt = certaines organisations internationales Edu = les établissements d’enseignementEdu = les établissements d’enseignement Gov = le gouvernement américainGov = le gouvernement américain Mil = l’armée américaineMil = l’armée américaine Net = les opérateurs réseauxNet = les opérateurs réseaux Org = les organisation à but non lucratifOrg = les organisation à but non lucratif

Des domaines nationaux (document ISO 3166)Des domaines nationaux (document ISO 3166)

Page 15: 3 . La couche application

DNS – L’espace de nomsDNS – L’espace de noms

En novembre 2000, 4 nouveaux TLD En novembre 2000, 4 nouveaux TLD approuvés par l’ICANN :approuvés par l’ICANN :Biz : les entreprisesBiz : les entreprises Info : diffuseurs d’informationsInfo : diffuseurs d’informationsName : noms de personnesName : noms de personnesPro : les professions libéralesPro : les professions libérales

Par la suite, d’autres ont encore été Par la suite, d’autres ont encore été ajoutés par l’ICANN.ajoutés par l’ICANN.

Page 16: 3 . La couche application

DNS – L’espace de nomsDNS – L’espace de noms

L’enregistrement d’un nouveau nom de L’enregistrement d’un nouveau nom de domaine (second niveau) est simple :domaine (second niveau) est simple :S’adresser au prestataire d’enregistrement S’adresser au prestataire d’enregistrement

pour le domaine voulupour le domaine vouluVérifier que le nom voulu n’appartient à Vérifier que le nom voulu n’appartient à

personnepersonnePayer l’enregistrement (faible montant)Payer l’enregistrement (faible montant)Exemple : Exemple : http://www.dns.luhttp://www.dns.lu

Page 17: 3 . La couche application

DNS – L’espace de nomsDNS – L’espace de noms

Un nom de domaine est formé de Un nom de domaine est formé de plusieurs composants séparés par un plusieurs composants séparés par un point.point.Exemple : eng.sun.comExemple : eng.sun.com

Les noms peuvent être :Les noms peuvent être :AbsolusAbsolus quand ils se terminent par un point quand ils se terminent par un pointRelatifsRelatifs quand ils doivent être interprétés par quand ils doivent être interprétés par

rapport à un endroit dans l’arborescencerapport à un endroit dans l’arborescence

Page 18: 3 . La couche application

DNS – L’espace de nomsDNS – L’espace de noms

Les noms absolus :Les noms absolus :Exemple : Exemple : www.uni.luwww.uni.lu..

Les noms relatifs :Les noms relatifs :Eng Eng Peut être relatif à sun.com ou yale.eduPeut être relatif à sun.com ou yale.edu

Les noms de domaine ne sont pas Les noms de domaine ne sont pas sensibles à la casse (EDU = edu).sensibles à la casse (EDU = edu).

Page 19: 3 . La couche application

DNS – L’espace de nomsDNS – L’espace de noms

Une organisation peut être enregistrée Une organisation peut être enregistrée sous plusieurs noms de domaines.sous plusieurs noms de domaines.Exemple : uni.lu pourrait être enregistrée Exemple : uni.lu pourrait être enregistrée également sous unilux.eduégalement sous unilux.edu

Chaque domaine contrôle la façon dont il Chaque domaine contrôle la façon dont il alloue les sous domaines lui appartenant.alloue les sous domaines lui appartenant.

Page 20: 3 . La couche application

DNS – RessourcesDNS – Ressources

On associe à chaque domaine un On associe à chaque domaine un enregistrement de ressource (enregistrement de ressource (Ressource Ressource RecordRecord))

Chaque enregistrement est composé de :Chaque enregistrement est composé de :Nom de domaineNom de domaineDurée de vieDurée de vieClasseClasseTypeTypeValeurValeur

Page 21: 3 . La couche application

DNS – RessourcesDNS – Ressources

Nom de domaineNom de domaine : désigne le domaine : désigne le domaine auquel s’applique l’enregistrement.auquel s’applique l’enregistrement.

Durée de vieDurée de vie : donne une indication sur la : donne une indication sur la stabilité de l’information (nombre de stabilité de l’information (nombre de secondes)secondes)

ClasseClasse : pour les enregistrement de : pour les enregistrement de l’Internet, cette valeur est toujours « IN ».l’Internet, cette valeur est toujours « IN ».

Page 22: 3 . La couche application

DNS – Ressources.DNS – Ressources.

TypeType : indique le type d’enregistrement. : indique le type d’enregistrement.

TypeType SignificationSignification ValeurValeur

SOASOA Start of AuthorityStart of Authority Paramètres pour cette zoneParamètres pour cette zone

AA Adresse IP d’un hôteAdresse IP d’un hôte Entier de 32 bitsEntier de 32 bits

MXMX Relais messagerieRelais messagerie Domaine prenant le courrier électroniqueDomaine prenant le courrier électronique

NSNS Serveur de nomsServeur de noms Nom d’un serveur de nomsNom d’un serveur de noms

CNAMECNAME Nom canoniqueNom canonique Nom de domaineNom de domaine

PTRPTR PointeurPointeur Alias pour une adresse IPAlias pour une adresse IP

Page 23: 3 . La couche application

DNS – RessourcesDNS – Ressources L’enregistrement de type L’enregistrement de type SOASOA désigne entre autres : désigne entre autres :

Le nom du serveur primaire pour la zone du serveur de noms.Le nom du serveur primaire pour la zone du serveur de noms. L’adresse électronique de son administrateurL’adresse électronique de son administrateur Le numéro de série (unique)Le numéro de série (unique)

Exemple :Exemple :@ IN SOA athena.uni.lu. michel.carpentier.uni.lu (@ IN SOA athena.uni.lu. michel.carpentier.uni.lu ( 2004102113 ; serial2004102113 ; serial 3600 ; refresh3600 ; refresh 900 ; retry900 ; retry 1209600 ; expire1209600 ; expire 43200 ; default_ttl43200 ; default_ttl ))

Page 24: 3 . La couche application

DNS – RessourcesDNS – Ressources

L’enregistrement de type L’enregistrement de type AA est le plus est le plus important. Chaque hôte qui dispose d’un important. Chaque hôte qui dispose d’un nom et d’une adresse IP a au moins un nom et d’une adresse IP a au moins un record de type A. Il sert à la résolution du record de type A. Il sert à la résolution du nom en adresse.nom en adresse.

Exemple :Exemple :athena IN A 158.64.76.51athena IN A 158.64.76.51

duchesse IN A 158.64.76.33duchesse IN A 158.64.76.33

Page 25: 3 . La couche application

DNS – RessourcesDNS – Ressources

L’enregistrement de type L’enregistrement de type MXMX renseigne renseigne sur le serveur qui gère le courrier sur le serveur qui gère le courrier électronique pour le domaine concerné.électronique pour le domaine concerné.

Exemple :Exemple :@ IN MX 5 duchesse.uni.lu.@ IN MX 5 duchesse.uni.lu.

Page 26: 3 . La couche application

DNS – RessourcesDNS – Ressources

Les enregistrement Les enregistrement NSNS spécifient les spécifient les serveurs de noms.serveurs de noms.

Exemple : Exemple : @ IN NS athena.ist.lu.@ IN NS athena.ist.lu.

@ IN NS ns.restena.lu.@ IN NS ns.restena.lu.

Page 27: 3 . La couche application

DNS – RessourcesDNS – Ressources

Les enregistrements Les enregistrements CNAMECNAME permettent permettent de donner d’autres noms à des machines de donner d’autres noms à des machines existantes (qui disposent d’un record A).existantes (qui disposent d’un record A).

Exemple :Exemple :jane IN A 158.64.76.38jane IN A 158.64.76.38

www IN CNAME janewww IN CNAME jane

Page 28: 3 . La couche application

DNS – RessourcesDNS – Ressources@ IN SOA athena.uni.lu. michel.carpentier.uni.lu (@ IN SOA athena.uni.lu. michel.carpentier.uni.lu ( 2004102113 ; serial2004102113 ; serial 3600 ; refresh3600 ; refresh 900 ; retry900 ; retry 1209600 ; expire1209600 ; expire 43200 ; default_ttl43200 ; default_ttl ))athena IN A 158.64.76.51athena IN A 158.64.76.51duchesse IN A 158.64.76.33duchesse IN A 158.64.76.33mail IN CNAME athenamail IN CNAME athenapop IN CNAME athenapop IN CNAME athena@ IN MX 5 duchesse.uni.lu.@ IN MX 5 duchesse.uni.lu.@ IN NS athena.ist.lu.@ IN NS athena.ist.lu.@ IN NS ns.restena.lu.@ IN NS ns.restena.lu.www IN CNAME janewww IN CNAME janejane IN A 158.64.76.38jane IN A 158.64.76.38hera IN A 158.64.76.52hera IN A 158.64.76.52pocahontas IN A 158.64.76.36pocahontas IN A 158.64.76.36lbpi IN CNAME heralbpi IN CNAME heraaki IN A 158.64.76.39aki IN A 158.64.76.39www2 IN CNAME akiwww2 IN CNAME akirouky IN A 158.64.76.31rouky IN A 158.64.76.31best IN CNAME roukybest IN CNAME roukycicel IN CNAME roukycicel IN CNAME roukyrouky IN A 158.64.76.31rouky IN A 158.64.76.31best IN CNAME roukybest IN CNAME roukycicel IN CNAME roukycicel IN CNAME roukyse2c IN CNAME herase2c IN CNAME herauml2004 IN CNAME herauml2004 IN CNAME herauml2004cc IN CNAME herauml2004cc IN CNAME heralara IN A 158.64.76.40lara IN A 158.64.76.40rise IN CNAME herarise IN CNAME herarise2004 IN CNAME herarise2004 IN CNAME herafidji2004 IN CNAME herafidji2004 IN CNAME herafidji2004cc IN CNAME herafidji2004cc IN CNAME herarise2004cc IN CNAME herarise2004cc IN CNAME herasecan-srv-02 IN A 158.64.76.41secan-srv-02 IN A 158.64.76.41wiki IN CNAME secan-srv-02wiki IN CNAME secan-srv-02

Exemple de fichier DNS

Page 29: 3 . La couche application

DNS – ReverseDNS – Reverse

Dans l’arborescence, il existe une branche Dans l’arborescence, il existe une branche spéciale qui permet de retrouver le nom spéciale qui permet de retrouver le nom d’une machine lorsqu’on connaît son d’une machine lorsqu’on connaît son adresse IP.adresse IP.

C’est la branche « C’est la branche « x.y.z.in-addr.arpax.y.z.in-addr.arpa » »

Page 30: 3 . La couche application

DNS – Reverse DNS – Reverse

int com edu gov mil org net jp lu be fr

sun

eng

yale

cs eng

ai linda

robot

acm ieee

www

uni restena cepl

www mail

arpa

In-addr

158

64

76

38

www.uni.lu

158.64.76.38

Page 31: 3 . La couche application

DNS – Ressources (2)DNS – Ressources (2)

L’enregistrement L’enregistrement PTRPTR permet de faire la permet de faire la résolution inverse. A une adresse IP résolution inverse. A une adresse IP donnée, il associe un nom de domaine.donnée, il associe un nom de domaine.

Exemple :Exemple :51 IN PTR athena.ist.lu.51 IN PTR athena.ist.lu.

33 IN PTR duchesse.ist.lu.33 IN PTR duchesse.ist.lu.

Page 32: 3 . La couche application

DNS – Serveurs de nomsDNS – Serveurs de noms

En théorie, un seul serveur de noms En théorie, un seul serveur de noms pourrait contenir toute la base de données pourrait contenir toute la base de données DNS.DNS.

Dans la pratique, ce serveur serait Dans la pratique, ce serveur serait complètement surchargé de travail.complètement surchargé de travail.

De plus, à la moindre panne, tout le De plus, à la moindre panne, tout le système serait inopérant.système serait inopérant.

Page 33: 3 . La couche application

DNS – Serveurs de nomsDNS – Serveurs de noms

Pour éviter les problèmes dus à l’existence Pour éviter les problèmes dus à l’existence d’une seule source d’information, l’espace de d’une seule source d’information, l’espace de noms à été divisé en noms à été divisé en ZonesZones distinctes. distinctes.

Chaque zone contient une partie de l’arbre et les Chaque zone contient une partie de l’arbre et les serveur responsables des domaines contenus serveur responsables des domaines contenus dans la zone.dans la zone.

Chaque zone contient un serveur de noms Chaque zone contient un serveur de noms principalprincipal et un ou plusieurs serveurs de noms et un ou plusieurs serveurs de noms secondairessecondaires

Page 34: 3 . La couche application

DNS – Serveurs de nomsDNS – Serveurs de noms Le serveur principal d’une zone stocke les Le serveur principal d’une zone stocke les

informations dans un fichier texte se trouvant sur informations dans un fichier texte se trouvant sur son disque dur.son disque dur.

Les serveurs secondaires puisent leurs Les serveurs secondaires puisent leurs informations dans le serveur primaire, informations dans le serveur primaire, conservent ces informations sur un fichier stocké conservent ces informations sur un fichier stocké sur le disque dur. sur le disque dur.

A chaque modification du serveur primaire, tous A chaque modification du serveur primaire, tous les serveurs secondaires interrogeront le les serveurs secondaires interrogeront le serveur primaire pour obtenir les mises à jour.serveur primaire pour obtenir les mises à jour.

Le serveur primaire changera de numéro de Le serveur primaire changera de numéro de série à chaque mise à jour.série à chaque mise à jour.

Page 35: 3 . La couche application

DNS – Serveurs de nomsDNS – Serveurs de noms

int com edu gov mil org net jp lu be fr …

sun

eng

yale

cs eng

ai linda

robot

acm ieee

www

uni restena cepl

www mail

Page 36: 3 . La couche application

DNS – Résolution de nomsDNS – Résolution de noms

Comp1.rtbf.be

Root server

.lu

uni.lu

Le résolveur de Comp1.rtbf.be reçoit une requête pour www.uni.lu

www.uni.lu ?

Je ne sais pas,Je cherche…

Je connais .lu

www.uni.lu ?

www.uni.lu ?

Je connais uni.lu

www.uni.lu ?

www.uni.lu est 158.64.76.38

www.uni.lu est 158.64.76.38

Page 37: 3 . La couche application

DNS – Résolution de nomsDNS – Résolution de noms

L’échange d’informations entre les L’échange d’informations entre les serveurs est basée sur serveurs est basée sur UDP – 53UDP – 53..

Un serveur peut être configuré pour Un serveur peut être configuré pour répondre aux requêtes de manière répondre aux requêtes de manière récursive ou non.récursive ou non.RécursifRécursif : il résout le nom et retourne la : il résout le nom et retourne la

réponseréponseNon récursifNon récursif : s’il ne connaît pas la réponse, il : s’il ne connaît pas la réponse, il

indique un serveur qui peut aider à la trouver.indique un serveur qui peut aider à la trouver.

Page 38: 3 . La couche application

DNS - OutilsDNS - Outils

Pour réaliser une résolution de noms, Pour réaliser une résolution de noms, l’utilisateur dispose d’un outil : l’utilisateur dispose d’un outil : NSLOOKUPNSLOOKUP..

Page 39: 3 . La couche application

DNS - OutilsDNS - Outils

Quand on tape un nom de domaine ou un nom d’hôte dans NSLOOKUP, il effectue une résolution comme s’il jouait le rôle du résolveur.

Page 40: 3 . La couche application

DNS - OutilsDNS - Outils

Les commandes de NSLOOKUP :Les commandes de NSLOOKUP :set type = xx (où xx est un type de record)set type = xx (où xx est un type de record)

Permet de retourner uniquement les types de Permet de retourner uniquement les types de record concernésrecord concernésExemple : Exemple : set type=MXset type=MXset type=anyset type=any

Page 41: 3 . La couche application

DNS - OutilsDNS - Outils

Server <adresse IP ou nom>Server <adresse IP ou nom>Permet de changer de serveur pour baser la Permet de changer de serveur pour baser la recherche sur un autre DNSrecherche sur un autre DNSUtile pour diagnostiquer un serveur.Utile pour diagnostiquer un serveur.

Page 42: 3 . La couche application

DNS - OutilsDNS - Outils

Les Les autres autres options options sont sont visible visible par par « ? »« ? »

Page 43: 3 . La couche application

Messagerie – IntroductionMessagerie – Introduction

Le courrier électronique est connu depuis plus Le courrier électronique est connu depuis plus de 20 ans !de 20 ans !

Avant les années 1990, il était surtout utilisé Avant les années 1990, il était surtout utilisé dans le milieu universitaire.dans le milieu universitaire.

Actuellement, le nombre d’e-mail quotidien est Actuellement, le nombre d’e-mail quotidien est supérieur au nombre de lettres postales !supérieur au nombre de lettres postales !

L’appellation officielle française est « courriel », L’appellation officielle française est « courriel », mais tout le monde parle de « e-mail »mais tout le monde parle de « e-mail »

Page 44: 3 . La couche application

Messagerie – IntroductionMessagerie – Introduction

Comme toute forme de communication, le Comme toute forme de communication, le courrier électronique possède ses propres courrier électronique possède ses propres conventions et styles :conventions et styles :Peu de personnes hésitent à communiquer Peu de personnes hésitent à communiquer

par e-mail (alors qu’elles hésiteraient à par e-mail (alors qu’elles hésiteraient à téléphoner ou écrire)téléphoner ou écrire)

Souvent les e-mail sont agrémentés Souvent les e-mail sont agrémentés d’émoticonsd’émoticons (smileys) (smileys):-) ;-) :-( :-) ;-) :-(

Page 45: 3 . La couche application

Messagerie – IntroductionMessagerie – Introduction

Au départ, le courrier électronique était un Au départ, le courrier électronique était un simple protocole de transfert de fichiers. simple protocole de transfert de fichiers. L’adresse du destinataire était placée sur L’adresse du destinataire était placée sur la première ligne du fichier.la première ligne du fichier.

Rapidement les limitations devinrent Rapidement les limitations devinrent évidentes :évidentes :Difficulté d’envoyer un message à un groupe Difficulté d’envoyer un message à un groupe

de personnesde personnesAucune structure interne au message par Aucune structure interne au message par

exemple pour inclure un autre messageexemple pour inclure un autre message

Page 46: 3 . La couche application

Messagerie – IntroductionMessagerie – Introduction

Pas de notions d’accusé de réceptionPas de notions d’accusé de réceptionPas de possibilité de signaler une absence Pas de possibilité de signaler une absence

prolongée (ex. vacances) ou de relayer le prolongée (ex. vacances) ou de relayer le courrier vers une tierce personnecourrier vers une tierce personne

L’intégration de l’outil e-mail avec le reste des L’intégration de l’outil e-mail avec le reste des applicatifs était médiocreapplicatifs était médiocre

Pas possible de créer des messages Pas possible de créer des messages multimédia.multimédia.

Page 47: 3 . La couche application

Messagerie – IntroductionMessagerie – Introduction Avec le temps et l’expérience acquise, les Avec le temps et l’expérience acquise, les

standards ont évolué.standards ont évolué. En 1982, le système de messagerie de En 1982, le système de messagerie de

ARPANet est publié sous la RFC 821 (protocole ARPANet est publié sous la RFC 821 (protocole de transmission) et RFC 822 (format des de transmission) et RFC 822 (format des messages).messages).

En 1984, le CCITT propose ses En 1984, le CCITT propose ses recommandations X.400.recommandations X.400.

Après deux décennies, X.400 a complètement Après deux décennies, X.400 a complètement disparu (ou presque) au profit des RFC 821 et disparu (ou presque) au profit des RFC 821 et 822 (et de leurs adaptations).822 (et de leurs adaptations).

Page 48: 3 . La couche application

Messagerie Messagerie Architecture et services Architecture et services

Le système de messagerie est organisé autour Le système de messagerie est organisé autour de deux sous-systèmes :de deux sous-systèmes : Les Les agents utilisateursagents utilisateurs (UA) qui permettent aux (UA) qui permettent aux

utilisateurs de lire et d’écrire des messages. Il s’agit utilisateurs de lire et d’écrire des messages. Il s’agit de programmes locaux qui offrent à l’utilisateur la de programmes locaux qui offrent à l’utilisateur la possiblité d’interagir avec le système. possiblité d’interagir avec le système. Ex. « outlook », « eudora », …Ex. « outlook », « eudora », …

Les Les agents de transfertagents de transfert (MTA) qui se chargent (MTA) qui se chargent d’acheminer le message depuis la source jusqu’à la d’acheminer le message depuis la source jusqu’à la destination. Il s’agit généralement de programmes destination. Il s’agit généralement de programmes qui tournent sur un serveur. Ex. Exchange, Lotus qui tournent sur un serveur. Ex. Exchange, Lotus Domino.Domino.

Page 49: 3 . La couche application

Messagerie Messagerie Architecture et services Architecture et services

De manière générale, le système de De manière générale, le système de messagerie propose 5 fonctions :messagerie propose 5 fonctions :La compositionLa compositionLe transfertLe transfertLa notificationLa notificationL’affichageL’affichageLa dispositionLa disposition

Page 50: 3 . La couche application

Messagerie Messagerie Architecture et services Architecture et services

La La fonction de compositionfonction de composition désigne le désigne le processus de création de message ou de processus de création de message ou de création de réponse à un message.création de réponse à un message.

En principe, tout éditeur de texte peut faire En principe, tout éditeur de texte peut faire ce travail. Toutefois, l’éditeur propose ce travail. Toutefois, l’éditeur propose souvent un certain nombre de fonctions souvent un certain nombre de fonctions qui facilitent l’utilisation. Exemple : insérer qui facilitent l’utilisation. Exemple : insérer l’adresse du destinataire automatiquement l’adresse du destinataire automatiquement en cas de réponse à un message.en cas de réponse à un message.

Page 51: 3 . La couche application

Messagerie Messagerie Architecture et services Architecture et services

La La fonction de transfertfonction de transfert désigne le désigne le processus d’acheminement du message processus d’acheminement du message depuis l’émetteur vers le destinataire.depuis l’émetteur vers le destinataire.

Cette fonction consiste en l’établissement Cette fonction consiste en l’établissement une connexion vers la machine une connexion vers la machine destinatrice (ou éventuellement une destinatrice (ou éventuellement une intermédiaire), l’envoi du message et la intermédiaire), l’envoi du message et la libération de la connexion. Le tout sans libération de la connexion. Le tout sans intervention de l’utilisateur.intervention de l’utilisateur.

Page 52: 3 . La couche application

Messagerie Messagerie Architecture et services Architecture et services

La La fonction de notificationfonction de notification se réfère aux se réfère aux renseignements donnés à l’émetteur du renseignements donnés à l’émetteur du message concernant l’issue de l’envoi.message concernant l’issue de l’envoi.

Le message a-t-il été remis ?Le message a-t-il été remis ?Le message a-t-il été perdu ?Le message a-t-il été perdu ?

Page 53: 3 . La couche application

Messagerie Messagerie Architecture et services Architecture et services

La La fonction d’affichagefonction d’affichage concerne la concerne la consultation des messages reçus. consultation des messages reçus.

Une conversion ou l’invocation d’un Une conversion ou l’invocation d’un module de visualisation spécifique est module de visualisation spécifique est parfois nécessaire (exemple : message parfois nécessaire (exemple : message vocal)vocal)

Page 54: 3 . La couche application

Messagerie Messagerie Architecture et services Architecture et services

La fonction de disposition représente l’étape La fonction de disposition représente l’étape finale. Elle concerne le sort réservé au message finale. Elle concerne le sort réservé au message une fois qu’il a été reçu.une fois qu’il a été reçu.

Les options possibles :Les options possibles : Le supprimer avant de le lire, ou après la lectureLe supprimer avant de le lire, ou après la lecture L’enregistrerL’enregistrer Extraire un ancien message et le relireExtraire un ancien message et le relire Transmettre le message à un autre destinataireTransmettre le message à un autre destinataire ……

Page 55: 3 . La couche application

Messagerie Messagerie Architecture et services Architecture et services

Outre ces fonctions, bon nombre de système Outre ces fonctions, bon nombre de système offrent en plus :offrent en plus : La déviation automatique de courrierLa déviation automatique de courrier La création de boites aux lettres pour stocker les La création de boites aux lettres pour stocker les

messages reçus (en attente de lecture)messages reçus (en attente de lecture) La création de listes de diffusions (mailing list)La création de listes de diffusions (mailing list) L’envoi d’une copie conforme (CC)L’envoi d’une copie conforme (CC) La priorité importanteLa priorité importante Le chiffrementLe chiffrement ……

Page 56: 3 . La couche application

Messagerie Messagerie Architecture et services Architecture et services

Distinction essentielle : Distinction essentielle : L’enveloppeL’enveloppe : contient les informations : contient les informations

requises pour la transmission du message requises pour la transmission du message (adresse de destination, priorité, etc)(adresse de destination, priorité, etc)

Son Son contenucontenu : ce qui se trouve dans : ce qui se trouve dans l’enveloppe constitué de deux parties.l’enveloppe constitué de deux parties.L’L’en-têteen-tête : contient des informations de contrôle : contient des informations de contrôle

pour l’agent utilisateurpour l’agent utilisateurLe Le corpscorps : message réel pour l’utilisateur : message réel pour l’utilisateur

Page 57: 3 . La couche application

Messagerie Messagerie Architecture et services Architecture et services

Mr Daniel Bernard18, Rue de la Vigne1356 Luxembourg

Compuventes180, rue Descartes3511 Windhof

OBJET : Facture 1145

Monsieur,

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

Nom : Mr Daniel BernardRue : 18, Rue de la VigneVille : LuxembourgCode postal : 1356Priorité : UrgentChiffrement : non

Monsieur,

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

De : CompuventesAdresse : 180, rue DescartesCode Postal : 3511Date : 5/11/2004Objet : Facture 1145

Enveloppe

En-tête

Corps

Enveloppe

Message

Page 58: 3 . La couche application

Messagerie Messagerie Agent utilisateur (UA) Agent utilisateur (UA)

L’agent utilisateur est un programme qui L’agent utilisateur est un programme qui accepte certaines commandes pour accepte certaines commandes pour composer, recevoir et répondre aux composer, recevoir et répondre aux messages.messages.

Exemples : Exemples : OutlookOutlookEudoraEudoraNetscape mailNetscape mail……

Page 59: 3 . La couche application

Messagerie Messagerie Agent utilisateur (UA) Agent utilisateur (UA)

Page 60: 3 . La couche application

Messagerie Messagerie Agent utilisateur (UA) Agent utilisateur (UA)

Page 61: 3 . La couche application

Messagerie Messagerie Agent utilisateur (UA) Agent utilisateur (UA)

La plupart du temps, l’agent utilisateur va La plupart du temps, l’agent utilisateur va aider l’utilisateur à composer le messageaider l’utilisateur à composer le message

Il respectera le format d’adresse Il respectera le format d’adresse nécessaire. Exemples :nécessaire. Exemples :[email protected]@uni.lu /C=LU/L=Luxembourg/PA=Rue Coudenhove /C=LU/L=Luxembourg/PA=Rue Coudenhove

Kalergi, 6/CN=Michel CarpentierKalergi, 6/CN=Michel Carpentier

Page 62: 3 . La couche application

Messagerie Messagerie Agent utilisateur (UA) Agent utilisateur (UA)

L’agent utilisateur supportera également L’agent utilisateur supportera également les listes de diffusionles listes de diffusion

La liste de diffusion peut être tenue La liste de diffusion peut être tenue localement ou sur un serveur distantlocalement ou sur un serveur distant

Au démarrage, l’agent utilisateur va Au démarrage, l’agent utilisateur va généralement vérifier l’arrivée de courrier généralement vérifier l’arrivée de courrier sur le serveursur le serveur

Page 63: 3 . La couche application

Messagerie Messagerie Format des messages Format des messages

Aujourd’hui, le format des messages de Aujourd’hui, le format des messages de courrier électronique est défini dans deux courrier électronique est défini dans deux protocoles :protocoles :RFC 822 – Format ASCII des messagesRFC 822 – Format ASCII des messagesMIMEMIME

L’enveloppe est définie dans la RFC 821, L’enveloppe est définie dans la RFC 821, mais nous l’aborderons plus tard…mais nous l’aborderons plus tard…

Page 64: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

Le message se compose Le message se compose d’une enveloppe de base (RFC 821)d’une enveloppe de base (RFC 821) d’un certain nombre de champs d’en-têted’un certain nombre de champs d’en-tête d’une ligne vierged’une ligne vierge d’un corpsd’un corps

Chaque champ d’en-tête consiste en une seule Chaque champ d’en-tête consiste en une seule ligne de texte ASCII avec :ligne de texte ASCII avec : Le nom du champLe nom du champ Le signe « : »Le signe « : » Une valeurUne valeur

Page 65: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

Dans son fonctionnement normal, l’agent Dans son fonctionnement normal, l’agent utilisateur construit le message et le utilisateur construit le message et le transmet à l’agent de transfert.transmet à l’agent de transfert.

Ce dernier utilise les champs d’en-tête Ce dernier utilise les champs d’en-tête pour construire l’enveloppe et transmettre pour construire l’enveloppe et transmettre le message.le message.

Page 66: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

En-têteEn-tête DescriptionDescription

To:To: Adresse des destinataires principauxAdresse des destinataires principaux

Cc:Cc: Adresse des destinataires secondairesAdresse des destinataires secondaires

Bcc:Bcc: Adresse des destinataires en copie cachéeAdresse des destinataires en copie cachée

From:From: Auteur du messageAuteur du message

Sender:Sender: Adresse de messagerie de l’émetteurAdresse de messagerie de l’émetteur

Received:Received: Ligne ajoutée par chaque agent de transfert le long de Ligne ajoutée par chaque agent de transfert le long de l’itinérairel’itinéraire

Return-path:Return-path: Peut être utilisé pour identifier un chemin de retour Peut être utilisé pour identifier un chemin de retour jusqu’à l’émetteurjusqu’à l’émetteur

Page 67: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

To: Donne la liste des adresses sous To: Donne la liste des adresses sous forme DNS de tous les destinataires forme DNS de tous les destinataires principauxprincipaux

Cc: Donne la liste des adresses sous Cc: Donne la liste des adresses sous forme DNS de tous les destinataires forme DNS de tous les destinataires secondaires. Techniquement, il n’est fait secondaires. Techniquement, il n’est fait aucune différence entre principaux et aucune différence entre principaux et secondaire.secondaire.

Page 68: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

Bcc: Donne la liste des adresses sous Bcc: Donne la liste des adresses sous forme DNS de tous les destinataires forme DNS de tous les destinataires secondaire dont la transmission doit être secondaire dont la transmission doit être cachée.cachée.Cette fonction permet d’envoyer le Cette fonction permet d’envoyer le message sans que les autres destinataires message sans que les autres destinataires ne le sachent.ne le sachent.

Page 69: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

From: donne l’auteur du messageFrom: donne l’auteur du message Sender: donne l’adresse de l’émetteur du Sender: donne l’adresse de l’émetteur du

message.message. Dans la pratique, il est possible que l’auteur soit Dans la pratique, il est possible que l’auteur soit

différent de l’émetteur. Exemple une secrétaire différent de l’émetteur. Exemple une secrétaire qui envoie du courrier pour son patron.qui envoie du courrier pour son patron.

Si le second champ est omis, le champ Si le second champ est omis, le champ « from » est utilisé comme adresse de « from » est utilisé comme adresse de l’émetteur.l’émetteur.

Page 70: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

Received: une ligne de ce type est ajoutée Received: une ligne de ce type est ajoutée par chaque agent de transfert sur par chaque agent de transfert sur l’itinéraire du message.l’itinéraire du message.Cette information peut être utilisée pour Cette information peut être utilisée pour détecter des problèmes.détecter des problèmes.

Return-path: Ce champ est ajouté par le Return-path: Ce champ est ajouté par le dernier agent de transfert sur le parcours dernier agent de transfert sur le parcours pour donner le chemin inverse jusqu’à pour donner le chemin inverse jusqu’à l’émetteur.l’émetteur.

Page 71: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

En-têteEn-tête DescriptionDescription

Date:Date: Date et heure auxquelles le message a été envoyéDate et heure auxquelles le message a été envoyé

Reply-to:Reply-to: Adresse à laquelle les réponses doivent être expédiéesAdresse à laquelle les réponses doivent être expédiées

Message-id:Message-id: Numéro de référence unique identifiant le messageNuméro de référence unique identifiant le message

In-Reply-To:In-Reply-To: Identifiant du message auquel celui-ci répondIdentifiant du message auquel celui-ci répond

References:References: D’autres identifiants de messages pertinentsD’autres identifiants de messages pertinents

Keywords:Keywords: Mots clés choisis par l’utilisateurMots clés choisis par l’utilisateur

Subject:Subject: Bref résumé du message pour un affichage sur une Bref résumé du message pour un affichage sur une ligneligne

Page 72: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

Reply-to: ce champ est utilisé quand, ni la Reply-to: ce champ est utilisé quand, ni la personne qui a écrit le message (From), ni personne qui a écrit le message (From), ni la personne qui l’a envoyé (Sender) ne la personne qui l’a envoyé (Sender) ne souhaitent lire la réponse éventuellesouhaitent lire la réponse éventuelle

Page 73: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

Return-PathReturn-Path: <[email protected]>: <[email protected]>Delivered-To: [email protected]: [email protected]: (qmail 12208 invoked by uid 0); 28 Nov 2004 18:50:47 -0000: (qmail 12208 invoked by uid 0); 28 Nov 2004 18:50:47 -0000ReceivedReceived: from unknown (HELO duchesse.ist.lu) (10.20.0.6): from unknown (HELO duchesse.ist.lu) (10.20.0.6) by athena.ist.lu with SMTP; 28 Nov 2004 18:50:47 -0000by athena.ist.lu with SMTP; 28 Nov 2004 18:50:47 -0000ReceivedReceived: from postfix.EnterYourDomainName.com (unverified) by duchesse.ist.lu: from postfix.EnterYourDomainName.com (unverified) by duchesse.ist.lu (Content Technologies SMTPRS 4.3.14) with ESMTP id <[email protected]> for (Content Technologies SMTPRS 4.3.14) with ESMTP id <[email protected]> for

<[email protected]>;<[email protected]>; Fri, 26 Nov 2004 22:32:17 +0100Fri, 26 Nov 2004 22:32:17 +0100ReceivedReceived: from [127.0.0.1] (localhost [127.0.0.1]): from [127.0.0.1] (localhost [127.0.0.1])

by postfix.EnterYourDomainName.com (Postfix) with ESMTPby postfix.EnterYourDomainName.com (Postfix) with ESMTPid 064AF5A16E; Fri, 26 Nov 2004 22:29:39 +0100 (CET)id 064AF5A16E; Fri, 26 Nov 2004 22:29:39 +0100 (CET)

Mime-Version: 1.0 (Apple Message framework v619)Mime-Version: 1.0 (Apple Message framework v619)Message-IdMessage-Id: <[email protected]>: <[email protected]>Content-Type: text/plain; charset=WINDOWS-1252; format=flowedContent-Type: text/plain; charset=WINDOWS-1252; format=flowedContent-Transfer-Encoding: quoted-printableContent-Transfer-Encoding: quoted-printableFromFrom: Grilles de frts <[email protected]>: Grilles de frts <[email protected]>SubjectSubject: =?ISO-8859-1?Q?Grille_de_Jimmy_:_Semaine_49_-_du_27_novembre_au_?=: =?ISO-8859-1?Q?Grille_de_Jimmy_:_Semaine_49_-_du_27_novembre_au_?= =?ISO-8859-1?Q?3_d=E9cembre_2004?==?ISO-8859-1?Q?3_d=E9cembre_2004?=DateDate: Fri, 26 Nov 2004 22:29:38 +0100: Fri, 26 Nov 2004 22:29:38 +0100X-Mailer: Apple Mail (2.619)X-Mailer: Apple Mail (2.619)ToTo: undisclosed-recipients:;: undisclosed-recipients:;

Page 74: 3 . La couche application

Messagerie Messagerie Format des messages – RFC 822 Format des messages – RFC 822

Les utilisateurs (constructeurs de programmes Les utilisateurs (constructeurs de programmes agent utilisateur), peuvent ajouter d’autres agent utilisateur), peuvent ajouter d’autres champs d’en-tête.champs d’en-tête.Ces nouveau champs doivent commencer par Ces nouveau champs doivent commencer par « X- »« X- »

Après les en-tête, vient le corps du message.Après les en-tête, vient le corps du message. A la fin du message, certains utilisateurs A la fin du message, certains utilisateurs

terminent leur message par une signature plus terminent leur message par une signature plus ou moins élaborée.ou moins élaborée.

Page 75: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Dans le début de l’ARPANet, les Dans le début de l’ARPANet, les messages étaient codés en ASCII – 7bitsmessages étaient codés en ASCII – 7bits

Aujourd’hui, ceci ne convient pas pour :Aujourd’hui, ceci ne convient pas pour :Les messages écrits en langues avec accentsLes messages écrits en langues avec accentsLes messages écrits en alphabet différentLes messages écrits en alphabet différentLes messages écrits sans alphabetLes messages écrits sans alphabetLes messages ne contenant pas de texte, Les messages ne contenant pas de texte,

mais du multimédiamais du multimédia

Page 76: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

La solution : MIME (Multipurpose Internet Mail La solution : MIME (Multipurpose Internet Mail Extensions)Extensions)

RFC 1341 (modifiée par RFC 2045 à 2049)RFC 1341 (modifiée par RFC 2045 à 2049) Idée :Idée :

Continuer à utiliser le format RFC 822Continuer à utiliser le format RFC 822 Ajouter une structure au corps du messageAjouter une structure au corps du message Coder les messages non ASCIICoder les messages non ASCII

De cette manière, seuls les agents utilisateurs De cette manière, seuls les agents utilisateurs doivent être modifiés. Le système d’envoi peut doivent être modifiés. Le système d’envoi peut rester le même.rester le même.

Page 77: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

MIME définit 5 nouveaux en-têtes :MIME définit 5 nouveaux en-têtes :

En-têteEn-tête DescriptionDescription

MIME-Version:MIME-Version: Identifie la version de MIME utiliséeIdentifie la version de MIME utilisée

Content-Description:Content-Description: Chaine lisible par la personne destinataire Chaine lisible par la personne destinataire décrivant le contenu du messagedécrivant le contenu du message

Content-id:Content-id: Identifiant uniqueIdentifiant unique

Content-Transfert-Content-Transfert-Encoding:Encoding:

Méthode d’encapsulation du corps pour la Méthode d’encapsulation du corps pour la transmissiontransmission

Content-Type:Content-Type: Type et format du contenuType et format du contenu

Page 78: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

MIME-Version: indique à l’agent utilisateur MIME-Version: indique à l’agent utilisateur qu’il reçoit un message au format MIME. qu’il reçoit un message au format MIME. L’absence de ce champ signifie un L’absence de ce champ signifie un message ASCII – 7bits.message ASCII – 7bits.

Content-Description: chaîne ASCII Content-Description: chaîne ASCII donnant une description sommaire du donnant une description sommaire du contenucontenu

Page 79: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Content-Id: identifie de manière unique le Content-Id: identifie de manière unique le contenu. Ce champ est similaire au contenu. Ce champ est similaire au Message-id:.Message-id:.

Content-Transfert-Encoding: indique de Content-Transfert-Encoding: indique de quelle façon le contenu est encapsulé quelle façon le contenu est encapsulé pour la transmission. pour la transmission. Pour les messages binaires, on utilise le Pour les messages binaires, on utilise le codage codage base64base64..

Page 80: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Codage base64 :Codage base64 : On divise un groupe de 24 bits (3 octets) en 4 On divise un groupe de 24 bits (3 octets) en 4

groupes de 6 bitsgroupes de 6 bits Chaque groupe de 6 bits est envoyé comme un Chaque groupe de 6 bits est envoyé comme un

caractère ASCII légal.caractère ASCII légal. A=0, B=1, etc. suivi des 26 lettres minuscules, puis A=0, B=1, etc. suivi des 26 lettres minuscules, puis

les 10 chiffres, et finalement +=62 et /=63.les 10 chiffres, et finalement +=62 et /=63. La séquence == indique que le dernier groupe La séquence == indique que le dernier groupe

n’occupait que 8 bitsn’occupait que 8 bits La séquence = indique que le dernier groupe La séquence = indique que le dernier groupe

n’occupait que 16 bitsn’occupait que 16 bits CR est ignoré.CR est ignoré.

Page 81: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Cette technique base64 n’est pas efficace Cette technique base64 n’est pas efficace pour les textes qui n’ont que quelques pour les textes qui n’ont que quelques caractères en non-ASCII.caractères en non-ASCII.

Pour ces types de texte, on utilisera Pour ces types de texte, on utilisera l’encodage l’encodage quoted-printablequoted-printable

Page 82: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Codage quoted-printable :Codage quoted-printable :Codage ASCII sur 7 bits Codage ASCII sur 7 bits Tous les caractères supérieurs à 127 codés Tous les caractères supérieurs à 127 codés

sous forme d’un signe égal suivi par la valeur sous forme d’un signe égal suivi par la valeur du caractère au format hexadécimal (2 du caractère au format hexadécimal (2 chiffres).chiffres).

Si ces deux codages ne sont pas Si ces deux codages ne sont pas utilisables, l’utilisateur peut en spécifier un utilisables, l’utilisateur peut en spécifier un autre dans le champ Content-Transfert-autre dans le champ Content-Transfert-Encoding.Encoding.

Page 83: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Content-Type: spécifie la nature du corps Content-Type: spécifie la nature du corps du message. du message.

Il existe 7 types définis, chacun ayant un Il existe 7 types définis, chacun ayant un ou plusieurs sous-types.ou plusieurs sous-types.

Le type et le sous-type sont séparés par Le type et le sous-type sont séparés par une barre oblique. Exemple : video/mpeg.une barre oblique. Exemple : video/mpeg.

Page 84: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

TypeType Sous-typeSous-type DescriptionDescription

TextText PlainPlain Texte non formatéTexte non formaté

EnrichedEnriched Texte incluant des commandes de formatage Texte incluant des commandes de formatage simplesimple

HtmlHtml Texte au format HTML (RFC 2854)Texte au format HTML (RFC 2854)

ImageImage GifGif Image fixe au format GIFImage fixe au format GIF

JpegJpeg Image fixe au format JpegImage fixe au format Jpeg

AudioAudio BasicBasic Son audibleSon audible

VideoVideo MpegMpeg Vidéo au format MpegVidéo au format Mpeg

Page 85: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

TypeType Sous-typeSous-type DescriptionDescription

ApplicationApplication Octet-Octet-StreamStream

Séquence d’octets non interprétéeSéquence d’octets non interprétée

PostscriptPostscript Document imprimable en postscriptDocument imprimable en postscript

MessageMessage RFC822RFC822 Message MIME RFC822Message MIME RFC822

PartialPartial Message découpé pour la transmissionMessage découpé pour la transmission

External-External-BodyBody

Le message lui-même doit être récupéré par Le message lui-même doit être récupéré par une communication internet.une communication internet.

Page 86: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

TypeType Sous-typeSous-type DescriptionDescription

MultipartMultipart MixedMixed Parties indépendantes dans l’ordre spécifiéParties indépendantes dans l’ordre spécifié

AlternativeAlternative Message identique dans différents formatsMessage identique dans différents formats

ParallelParallel Parties à visualiser simultanémentParties à visualiser simultanément

DigestDigest Chaque partie est un message RFC822 Chaque partie est un message RFC822 completcomplet

Page 87: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Text désigne un contenu ASCII purText désigne un contenu ASCII pur Text/Plain : messages ordinaires sans codageText/Plain : messages ordinaires sans codage Text/Enriched : donne une possibilité d’enrichir le Text/Enriched : donne une possibilité d’enrichir le

texte de formatage en utilisant un langage SGMLtexte de formatage en utilisant un langage SGMLExemple : Exemple : Le <bold> temps </bold> est beauLe <bold> temps </bold> est beaudonneradonneraLe Le tempstemps est beau est beau

Text/Html : RFC 2854, utilise le format HTMLText/Html : RFC 2854, utilise le format HTML Text/Xml : RFC 3023, utilise le format XMLText/Xml : RFC 3023, utilise le format XML

Page 88: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Image désigne un contenu d’image fixeImage désigne un contenu d’image fixe Image/Gif : format d’image GifImage/Gif : format d’image Gif Image/Jpeg : format d’image JpegImage/Jpeg : format d’image JpegD’autres formats d’images ont étés ajoutésD’autres formats d’images ont étés ajoutés

Audio et Video donnent des sons et des Audio et Video donnent des sons et des images animées.images animées.

Page 89: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Application désigne des contenus destinés Application désigne des contenus destinés à des applicatifs externes :à des applicatifs externes :Application/octet-stream: constitue une Application/octet-stream: constitue une

séquence binaire à faire interpréter par un séquence binaire à faire interpréter par un programme externeprogramme externe

Application/Postscript: désigne un contenu de Application/Postscript: désigne un contenu de type postscript.type postscript.Le langage postscript est fréquemment utilisé Le langage postscript est fréquemment utilisé pour l’impression.pour l’impression.

Page 90: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Message désigne un message encapsulé Message désigne un message encapsulé dans un autre.dans un autre.Message/RFC822 : indique un message au Message/RFC822 : indique un message au

format RFC822 encapsulé dans le contenu de format RFC822 encapsulé dans le contenu de ce message. Utilisé pour le transfert de ce message. Utilisé pour le transfert de messages.messages.

Message/partial: permet de découper des Message/partial: permet de découper des messages trop longs en plus petites parties. messages trop longs en plus petites parties. Ces messages sont reconstitués à la Ces messages sont reconstitués à la réception.réception.

Page 91: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Message/external-body: permet d’envoyer un Message/external-body: permet d’envoyer un message en référençant une source extérieur, message en référençant une source extérieur, par exemple une URL. Utilisé quand le par exemple une URL. Utilisé quand le contenu est trop volumineux.contenu est trop volumineux.

Multipart autorise un message a contenir Multipart autorise un message a contenir plusieurs parties. Le début et la fin de plusieurs parties. Le début et la fin de chaque partie est clairement identifié.chaque partie est clairement identifié.Multipart/mixed: Les parties peuvent être de Multipart/mixed: Les parties peuvent être de

type différents.type différents.

Page 92: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Multipart/alternative: permet a un message Multipart/alternative: permet a un message d’être inclus sous différentes représentations d’être inclus sous différentes représentations alternatives.alternatives.Exemple, en texte ASCII, en texte enrichi et Exemple, en texte ASCII, en texte enrichi et en texte HTML.en texte HTML.

Multipart/parallel: indique que plusieurs Multipart/parallel: indique que plusieurs parties doivent être lues en même temps.parties doivent être lues en même temps.Exemple : un film avec un signal audioExemple : un film avec un signal audio

Multipart/digest: indique un regroupement de Multipart/digest: indique un regroupement de messages au format RFC822.messages au format RFC822.

Page 93: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

Return-Path: <[email protected]>Return-Path: <[email protected]>Delivered-To: [email protected]: [email protected]: (qmail 21074 invoked by uid 0); 28 Nov 2004 21:24:14 -0000Received: (qmail 21074 invoked by uid 0); 28 Nov 2004 21:24:14 -0000Received: from unknown (HELO duchesse.ist.lu) (10.20.0.6)Received: from unknown (HELO duchesse.ist.lu) (10.20.0.6) by athena.ist.lu with SMTP; 28 Nov 2004 21:24:14 -0000by athena.ist.lu with SMTP; 28 Nov 2004 21:24:14 -0000Received: from outmx019.isp.belgacom.be (unverified) by duchesse.ist.luReceived: from outmx019.isp.belgacom.be (unverified) by duchesse.ist.lu (Content Technologies SMTPRS 4.3.14) with ESMTP id <[email protected]> for <[email protected]>;(Content Technologies SMTPRS 4.3.14) with ESMTP id <[email protected]> for <[email protected]>; Sun, 28 Nov 2004 22:26:02 +0100Sun, 28 Nov 2004 22:26:02 +0100Received: from outmx019.isp.belgacom.be (localhost [127.0.0.1])Received: from outmx019.isp.belgacom.be (localhost [127.0.0.1]) by outmx019.isp.belgacom.be (8.12.11/8.12.11/Skynet-OUT-2.22) with ESMTP id iASLOTqE017205by outmx019.isp.belgacom.be (8.12.11/8.12.11/Skynet-OUT-2.22) with ESMTP id iASLOTqE017205 for <[email protected]>; Sun, 28 Nov 2004 22:24:30 +0100for <[email protected]>; Sun, 28 Nov 2004 22:24:30 +0100 (envelope-from <[email protected]>)(envelope-from <[email protected]>)Received: from VOYAGER (113.239-200-80.adsl.skynet.be [80.200.239.113])Received: from VOYAGER (113.239-200-80.adsl.skynet.be [80.200.239.113]) by outmx019.isp.belgacom.be (8.12.11/8.12.11/Skynet-OUT-2.22) with ESMTP id iASLOLpl017158by outmx019.isp.belgacom.be (8.12.11/8.12.11/Skynet-OUT-2.22) with ESMTP id iASLOLpl017158 for <[email protected]>; Sun, 28 Nov 2004 22:24:22 +0100for <[email protected]>; Sun, 28 Nov 2004 22:24:22 +0100 (envelope-from <[email protected]>)(envelope-from <[email protected]>)Message-Id: <[email protected]>Message-Id: <[email protected]>From: "michel.carpentier" <[email protected]>From: "michel.carpentier" <[email protected]>To: <[email protected]>To: <[email protected]>Subject: Test MIMESubject: Test MIMEDate: Sun, 28 Nov 2004 22:23:35 +0100Date: Sun, 28 Nov 2004 22:23:35 +0100MIME-Version: 1.0MIME-Version: 1.0Content-Type: multipart/mixed;Content-Type: multipart/mixed;

boundary="----=_NextPart_000_0000_01C4D598.E7140250"boundary="----=_NextPart_000_0000_01C4D598.E7140250"X-Mailer: Microsoft Office Outlook, Build 11.0.5510X-Mailer: Microsoft Office Outlook, Build 11.0.5510Thread-Index: AcTVkITSmS2kmRejQZm4s5kZS8wjtw==Thread-Index: AcTVkITSmS2kmRejQZm4s5kZS8wjtw==X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409

This is a multi-part message in MIME format.This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C4D598.E7140250------=_NextPart_000_0000_01C4D598.E7140250Content-Type: multipart/alternative;Content-Type: multipart/alternative;

boundary="----=_NextPart_001_0001_01C4D598.E7140250"boundary="----=_NextPart_001_0001_01C4D598.E7140250"

Page 94: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

------=_NextPart_001_0001_01C4D598.E7140250------=_NextPart_001_0001_01C4D598.E7140250Content-Type: text/plain;Content-Type: text/plain;

charset="us-ascii"charset="us-ascii"Content-Transfer-Encoding: 7bitContent-Transfer-Encoding: 7bit

Bonjour,Bonjour, Voici un test de fichier MIME....Voici un test de fichier MIME.... A+A+ MichelMichel

------=_NextPart_001_0001_01C4D598.E7140250------=_NextPart_001_0001_01C4D598.E7140250Content-Type: text/html;Content-Type: text/html;

charset="us-ascii"charset="us-ascii"Content-Transfer-Encoding: quoted-printableContent-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><HTML><HEAD><META http-equiv=3DContent-Type content=3D"text/html; =<META http-equiv=3DContent-Type content=3D"text/html; =charset=3Dus-ascii">charset=3Dus-ascii"><META content=3D"MSHTML 6.00.2800.1400" name=3DGENERATOR></HEAD><META content=3D"MSHTML 6.00.2800.1400" name=3DGENERATOR></HEAD><BODY><BODY><DIV><FONT face=3DArial size=3D2><SPAN=20<DIV><FONT face=3DArial size=3D2><SPAN=20class=3D414152221-28112004>Bonjour,</SPAN></FONT></DIV>class=3D414152221-28112004>Bonjour,</SPAN></FONT></DIV><DIV><FONT face=3DArial size=3D2><SPAN=20<DIV><FONT face=3DArial size=3D2><SPAN=20class=3D414152221-28112004></SPAN></FONT>&nbsp;</DIV>class=3D414152221-28112004></SPAN></FONT>&nbsp;</DIV><DIV><FONT face=3DArial size=3D2><SPAN class=3D414152221-28112004>Voici =<DIV><FONT face=3DArial size=3D2><SPAN class=3D414152221-28112004>Voici =un test de=20un test de=20fichier MIME....</SPAN></FONT></DIV>fichier MIME....</SPAN></FONT></DIV>

Page 95: 3 . La couche application

Messagerie Messagerie Format des messages - MIME Format des messages - MIME

<DIV><FONT face=3DArial size=3D2><SPAN=20<DIV><FONT face=3DArial size=3D2><SPAN=20class=3D414152221-28112004></SPAN></FONT>&nbsp;</DIV>class=3D414152221-28112004></SPAN></FONT>&nbsp;</DIV><DIV><FONT face=3DArial size=3D2><SPAN=20<DIV><FONT face=3DArial size=3D2><SPAN=20class=3D414152221-28112004>A+</SPAN></FONT></DIV>class=3D414152221-28112004>A+</SPAN></FONT></DIV><DIV><FONT face=3DArial size=3D2><SPAN=20<DIV><FONT face=3DArial size=3D2><SPAN=20class=3D414152221-28112004></SPAN></FONT>&nbsp;</DIV>class=3D414152221-28112004></SPAN></FONT>&nbsp;</DIV><DIV><FONT face=3DArial size=3D2><SPAN=20<DIV><FONT face=3DArial size=3D2><SPAN=20class=3D414152221-28112004>Michel</SPAN></FONT></DIV></BODY></HTML>class=3D414152221-28112004>Michel</SPAN></FONT></DIV></BODY></HTML>

------=_NextPart_001_0001_01C4D598.E7140250--------=_NextPart_001_0001_01C4D598.E7140250--

------=_NextPart_000_0000_01C4D598.E7140250------=_NextPart_000_0000_01C4D598.E7140250Content-Type: image/jpeg;Content-Type: image/jpeg;

name="notepad.jpg"name="notepad.jpg"Content-Transfer-Encoding: base64Content-Transfer-Encoding: base64Content-Disposition: attachment;Content-Disposition: attachment;

filename="notepad.jpg"filename="notepad.jpg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAArAHIDASIAMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAArAHIDASIA[snip][snip]cADOBXzj/wAJx4j/AOgj/wCQI/8A4mj/AITjxH/0Ef8AyBH/APE0e1j1iL2Ut0z3u58PWt44OsavcADOBXzj/wAJx4j/AOgj/wCQI/8A4mj/AITjxH/0Ef8AyBH/APE0e1j1iL2Ut0z3u58PWt44Osavq2sxqQyW+oXIaFWBzkogVWP+8DU14+YZcHqrV8/f8Jx4j/6CP/kCP/4mj/hOPEf/AEEf/IEf/wATq2sxqQyW+oXIaFWBzkogVWP+8DU14+YZcHqrV8/f8Jx4j/6CP/kCP/4mj/hOPEf/AEEf/IEf/wATVxrximlEl4eUmm5Gdr3/ACMep/8AX3L/AOhms+vobRPh54W1jQdO1S/0vzry8tYrieT7RKu+R1DMVxrximlEl4eUmm5Gdr3/ACMep/8AX3L/AOhms+vobRPh54W1jQdO1S/0vzry8tYrieT7RKu+R1DMcBgBkknAAFXv+FV+C/8AoDf+TU3/AMXXMdJ//9k=cBgBkknAAFXv+FV+C/8AoDf+TU3/AMXXMdJ//9k=

------=_NextPart_000_0000_01C4D598.E7140250--------=_NextPart_000_0000_01C4D598.E7140250--

Page 96: 3 . La couche application

MessagerieMessagerieTransfert des messagesTransfert des messages

Le système de transfert des messages se Le système de transfert des messages se charge de l’acheminement des messages charge de l’acheminement des messages de l’émetteur au destinataire.de l’émetteur au destinataire.

Cet acheminement est assuré par le Cet acheminement est assuré par le protocole SMTP (Simple Mail Transfert protocole SMTP (Simple Mail Transfert Protocol)Protocol)

TCP / Port 25TCP / Port 25

Page 97: 3 . La couche application

MessagerieMessagerieTransfert des messagesTransfert des messages

Un daemon écoute les connexions sur ce Un daemon écoute les connexions sur ce port 25port 25

Il copie les messages dans les boites aux Il copie les messages dans les boites aux lettres des destinataireslettres des destinataires

Si le message ne peut être remis, il envoie Si le message ne peut être remis, il envoie un rapport d’erreur à l’émetteurun rapport d’erreur à l’émetteur

Page 98: 3 . La couche application

MessagerieMessagerieTransfert des messagesTransfert des messages

SMTP est un simple protocole ASCII.SMTP est un simple protocole ASCII.La machine cliente établi la connexion sur La machine cliente établi la connexion sur

le port 25, puis attend que la machine le port 25, puis attend que la machine serveur initie la communication.serveur initie la communication.

Le serveur commence par envoyer une Le serveur commence par envoyer une ligne indiquant son identité, et qu’il peut ligne indiquant son identité, et qu’il peut recevoir du courrierrecevoir du courrier

Si le client ne reçoit pas cette ligne, il Si le client ne reçoit pas cette ligne, il clôture la connexion.clôture la connexion.

Page 99: 3 . La couche application

MessagerieMessagerieTransfert des messagesTransfert des messages

Si le serveur a bien répondu, le client Si le serveur a bien répondu, le client signale de qui provient le message et a qui signale de qui provient le message et a qui il est destiné.il est destiné.

Le message est alors envoyé, puis Le message est alors envoyé, puis acquitté par le serveur.acquitté par le serveur.

Aucune somme de contrôle n’est Aucune somme de contrôle n’est nécessaire car nous utilisons un service nécessaire car nous utilisons un service TCP.TCP.

Page 100: 3 . La couche application

MessagerieMessagerieTransfert des messagesTransfert des messages

Échange d’informations client – serveur :Échange d’informations client – serveur :S: 220 xyz.com SMTP service readyS: 220 xyz.com SMTP service ready

C: HELO abcd.comC: HELO abcd.com

S: 250 xyz.com says hello to abcd.comS: 250 xyz.com says hello to abcd.com

C: MAIL FROM: C: MAIL FROM: [email protected]@abcd.com

S: 250 sender okS: 250 sender ok

C: RCPT TO: C: RCPT TO: [email protected]@xyz.com

S: 250 recipient okS: 250 recipient ok

Page 101: 3 . La couche application

MessagerieMessagerieTransfert des messagesTransfert des messages

C: DATAC: DATA

S: 354 Send mail; end with « . » on a line by S: 354 Send mail; end with « . » on a line by itselfitself

<Contenu du message au format RFC822><Contenu du message au format RFC822>

C: <CR>.<CR>C: <CR>.<CR>

Page 102: 3 . La couche application

MessagerieMessagerieTransfert des messagesTransfert des messages

La séquence des caractères envoyés par La séquence des caractères envoyés par le client est assez rigide.le client est assez rigide.

La séquence envoyée par le serveur est La séquence envoyée par le serveur est plus souple. Seul le code numérique est plus souple. Seul le code numérique est vraiment important.vraiment important.

Pour terminer la connexion, le client Pour terminer la connexion, le client envoie la commande « QUIT ».envoie la commande « QUIT ».

Page 103: 3 . La couche application

MessagerieMessagerieTransfert des messages (résumé)Transfert des messages (résumé)

SMTP Sender(Client)

SMTP Sender(Server)

Connection InitiatedConnection Initiated

220 <FQDN> Ready220 <FQDN> ReadyHELO <FQDN>HELO <FQDN>

250 <FQDN> Hello250 <FQDN> HelloMAIL FROM:<sender>MAIL FROM:<sender>

250 <sender> Sender OK250 <sender> Sender OKRCPT TO:<sender>RCPT TO:<sender>

250 <sender>250 <sender>DATADATA

354 Start mail input…354 Start mail input…Sending dataSending data

221 <FQDN> Service closing …221 <FQDN> Service closing …QUITQUIT

Page 104: 3 . La couche application

MessagerieMessagerieTransfert des messagesTransfert des messages

Exercice : Envoyer un message Exercice : Envoyer un message manuellement en simulant le protocole manuellement en simulant le protocole SMTPSMTPDéterminer le relai SMTP local (nslookup)Déterminer le relai SMTP local (nslookup)Établir une connexion sur le port 25 Établir une connexion sur le port 25 Simuler SMTP pour l’envoi de messageSimuler SMTP pour l’envoi de messageClôturer la connexionClôturer la connexion

Conseil : utilisation de Notepad pour écrire Conseil : utilisation de Notepad pour écrire les commandes les commandes

Page 105: 3 . La couche application

MessagerieMessagerieTransfert des messagesTransfert des messages

Page 106: 3 . La couche application

MessagerieMessagerieTransfert des messagesTransfert des messages

Page 107: 3 . La couche application

MessagerieMessagerieRemise finaleRemise finale

Jusqu’ici nous avons assumé que Jusqu’ici nous avons assumé que l’émetteur et le destinataire étaient en l’émetteur et le destinataire étaient en permanence connectés au réseaupermanence connectés au réseau

La connexion TCP entre eux peut donc se La connexion TCP entre eux peut donc se réaliserréaliser

Avec l’utilisation de modem, cette Avec l’utilisation de modem, cette connexion TCP n’est pas toujours connexion TCP n’est pas toujours garantie.garantie.

Page 108: 3 . La couche application

MessagerieMessagerieRemise finaleRemise finale

La solution est que l’agent de transfert du La solution est que l’agent de transfert du fournisseur d’accès à l’Internet accepte le fournisseur d’accès à l’Internet accepte le courrier de ses clients et le stocke dans courrier de ses clients et le stocke dans une boite aux lettres.une boite aux lettres.

Le client peut ensuite venir le récupérer. Le client peut ensuite venir le récupérer. D’où l’introduction d’un autre protocole : D’où l’introduction d’un autre protocole : POP3POP3 (Post Office Protocol, version3) (Post Office Protocol, version3)

RFC 1939.RFC 1939.

Page 109: 3 . La couche application

MessagerieMessagerieRemise finaleRemise finale

Hôteemetteur

Agentrécepteur

Internet

SMTP

Connexionpermanente

MTA UA

Envoi et lecture de message lorsque le récepteur possède uneconnexion permanente à l’Internet et que l’agent utilisateur estexécuté sur la même machine que l’agent de transfert de messages.

Page 110: 3 . La couche application

MessagerieMessagerieRemise finaleRemise finale

Hôteemetteur

Agentrécepteur

Internet

SMTP

Connexionpermanente

MTA Serveur POP3

PCutilisateur

Liaison commutée

UA

POP3

Lecture de message lorsque le récepteur possède une connexion par liaison commutée avec son fournisseurd’accès à l’Internet.

Page 111: 3 . La couche application

MessagerieMessagerieRemise finaleRemise finale

Le protocole POP3 fonctionne sur le port Le protocole POP3 fonctionne sur le port TCP 110.TCP 110.

Une fois la connexion établie, le protocole Une fois la connexion établie, le protocole passe par 3 étapes :passe par 3 étapes :Autorisation (connexion de l’utilisateur)Autorisation (connexion de l’utilisateur)Transactions (collecte des messages et Transactions (collecte des messages et

marquage pour suppression)marquage pour suppression)Mise à jour (suppression effective des Mise à jour (suppression effective des

messages marqués)messages marqués)

Page 112: 3 . La couche application

MessagerieMessagerieRemise finaleRemise finale

Le principe d’échange entre client et Le principe d’échange entre client et serveur est similaire à SMTP.serveur est similaire à SMTP.C: <telnet pop.uni.lu 110>C: <telnet pop.uni.lu 110>

S: +OK POP3 server readyS: +OK POP3 server ready

C: USER mcaC: USER mca

S: +OKS: +OK

C: PASS <secret>C: PASS <secret>

S: +OK login successfullS: +OK login successfull

Page 113: 3 . La couche application

MessagerieMessagerieRemise finaleRemise finale

C: LISTC: LISTS: 1 S: 1 25052505S: 2 S: 2 1403214032C: RETR 1C: RETR 1S: (sends message 1)S: (sends message 1)C: DELE 1C: DELE 1C: RETR 2C: RETR 2S: (sends message 2)S: (sends message 2)C: DELE 2C: DELE 2C: QUITC: QUITS: +OK POP3 server disconnectingS: +OK POP3 server disconnecting

Page 114: 3 . La couche application

MessagerieMessagerieRemise finaleRemise finale

Le protocole POP3 ne permet pas une Le protocole POP3 ne permet pas une gestion « à distance » d’une boite aux gestion « à distance » d’une boite aux lettres.lettres.

Pour ce faire, il a été créé IMAP4, mais Pour ce faire, il a été créé IMAP4, mais nous n’entrerons pas dans les détails de nous n’entrerons pas dans les détails de ce protocole.ce protocole.

Page 115: 3 . La couche application

MessagerieMessagerieRemise finaleRemise finale

Certains systèmes de messagerie Certains systèmes de messagerie moderne proposent en plus de ces moderne proposent en plus de ces protocoles d’accès, un client de protocoles d’accès, un client de messagerie de type « webmail ».messagerie de type « webmail ».

Ce dernier permet de consulter sa Ce dernier permet de consulter sa messagerie via un browser web.messagerie via un browser web.

L’UA et donc dans ce cas, le serveur L’UA et donc dans ce cas, le serveur Webmail.Webmail.

Page 116: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

L’applicatif Web permet d’accéder à des L’applicatif Web permet d’accéder à des documents reliés entre eux et répartis à travers documents reliés entre eux et répartis à travers l’Internet.l’Internet.

Le Web (ou World Wide Web) a fait ses débuts Le Web (ou World Wide Web) a fait ses débuts en 1989 au CERN à Genève.en 1989 au CERN à Genève.

L’idée était de créer un système qui permettrait L’idée était de créer un système qui permettrait un partage aisé des documents (rapports, un partage aisé des documents (rapports, images, plans, dessins, etc) liés aux images, plans, dessins, etc) liés aux expériences en physique nucléaire.expériences en physique nucléaire.

Page 117: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

L’idée d’une toile de documents L’idée d’une toile de documents interconnectés par des liens hypertexte interconnectés par des liens hypertexte est avancée en mars 1989 par un est avancée en mars 1989 par un physicien du CERN : Tim Berners Lee.physicien du CERN : Tim Berners Lee.

18 mois plus tard le premier prototype en 18 mois plus tard le premier prototype en mode texte est présenté à une mode texte est présenté à une démonstration publique à San Antonio démonstration publique à San Antonio (Texas). (Texas).

Page 118: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

Cet événement a déclenché un intérêt important Cet événement a déclenché un intérêt important d’une équipe de chercheurs conduite par Marc d’une équipe de chercheurs conduite par Marc Andreessen de l’université de l’Illinois.Andreessen de l’université de l’Illinois.

Rapidement, avec son équipe, il développe la Rapidement, avec son équipe, il développe la première interface première interface graphique : Mosaic.graphique : Mosaic.

Grâce au succès de cet outil, Marc Andreesen Grâce au succès de cet outil, Marc Andreesen fonde Netscape Communications en 1995.fonde Netscape Communications en 1995.

Page 119: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

En 1994, le CERN et le MIT signent un En 1994, le CERN et le MIT signent un accord pour fonder le World Wide Web accord pour fonder le World Wide Web Consortium (W3C).Consortium (W3C).

Cette organisation est vouée au Cette organisation est vouée au développement de la toile, à la développement de la toile, à la normalisation de protocole et à la normalisation de protocole et à la promotion de l’interopérabilité entre sites.promotion de l’interopérabilité entre sites.

Page 120: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

Du point de vue utilisateur, la toile est un Du point de vue utilisateur, la toile est un ensemble de pages Web, contenant de ensemble de pages Web, contenant de l’information ainsi que des liens vers d’autres l’information ainsi que des liens vers d’autres pages Web.pages Web.

En cliquant sur le lien, l’utilisateur peut afficher la En cliquant sur le lien, l’utilisateur peut afficher la page Web référencée.page Web référencée.

On appelle ce mécanise Hypertexte.On appelle ce mécanise Hypertexte. L’hypertexte a été inventé en 1945 par un L’hypertexte a été inventé en 1945 par un

professeur en génie électrique du MIT : professeur en génie électrique du MIT : Vannevar Bush.Vannevar Bush.

Page 121: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

Les pages sont consultées par un Les pages sont consultées par un navigateur Web (navigateur Web (BrowserBrowser).).

Ce navigateur est un programme qui Ce navigateur est un programme qui permet d’afficher une page Web et permet d’afficher une page Web et intercepter les clics de souris sur les intercepter les clics de souris sur les éléments de la page pour y réagir.éléments de la page pour y réagir.

Les pages sont nommées par une adresse Les pages sont nommées par une adresse sous forme d’URL – Uniform Ressouce sous forme d’URL – Uniform Ressouce Locator.Locator.

Page 122: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

ClientServer

abcd.comServer

xyz.com

InternetInternet

Connexion TCP

Lien hypertexte Lien hypertexte

Navigateur

Serveur Web

Page 123: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

Les étapes du navigateur losqu’un Les étapes du navigateur losqu’un utilisateur surfe sur un lien vers utilisateur surfe sur un lien vers http://www.cepl.lu/F400.htm :http://www.cepl.lu/F400.htm :Le navigateur détermine l’URL en examinant Le navigateur détermine l’URL en examinant

ce qui a été sélectionné par l’utilisateurce qui a été sélectionné par l’utilisateurLe navigateur interroge un serveur DNS pour Le navigateur interroge un serveur DNS pour

connaître l’adresse IP de connaître l’adresse IP de www.cepl.luwww.cepl.luLe serveur DNS répond avec 194.7.251.115Le serveur DNS répond avec 194.7.251.115

Page 124: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

Le navigateur initie une connexion TCP sur le port 80 Le navigateur initie une connexion TCP sur le port 80 de la machine de la machine 194.7.251.115194.7.251.115

Il envoie sur la connexion une requête demandant le Il envoie sur la connexion une requête demandant le fichier /F400.htmfichier /F400.htm

Le serveur Le serveur www.cepl.luwww.cepl.lu envoie le fichier demandé envoie le fichier demandé La connexion TCP est terminéeLa connexion TCP est terminée Le navigateur affiche tout le texte contenu dans Le navigateur affiche tout le texte contenu dans

/F400.htm/F400.htm Le navigateur récupère et affiche toutes les images Le navigateur récupère et affiche toutes les images

contenues dans ce fichier.contenues dans ce fichier.

Page 125: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

Pour pouvoir afficher une nouvelle page, Pour pouvoir afficher une nouvelle page, le navigateur doit en comprendre le le navigateur doit en comprendre le format. format.

Pour cela, les pages sont écrites dans un Pour cela, les pages sont écrites dans un langage normalisé, appelé HTML.langage normalisé, appelé HTML.

L’étude du langage HTML fait l’objet du L’étude du langage HTML fait l’objet du cours CEPL 1030.cours CEPL 1030.

Page 126: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

Un navigateur est un interpréteur de langage Un navigateur est un interpréteur de langage HTML, mais pas seulement…HTML, mais pas seulement…

… … il propose également des fonctions utiles pour il propose également des fonctions utiles pour l’internaute :l’internaute : Des boutons pour revenir en arrière ou à la première Des boutons pour revenir en arrière ou à la première

pagepage La possibilité de marquer des pages par des signets La possibilité de marquer des pages par des signets

(Bookmarks ou Favorites)(Bookmarks ou Favorites) La possibilité de sauvegarder des pages ou de les La possibilité de sauvegarder des pages ou de les

imprimerimprimer Etc.Etc.

Page 127: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

Côté serveur le travail consiste en :Côté serveur le travail consiste en :Accepter une connexion TCP d’un Accepter une connexion TCP d’un

programme client (navigateur)programme client (navigateur)Obtenir le nom du fichier demandéObtenir le nom du fichier demandéRécupérer le fichier sur le disque durRécupérer le fichier sur le disque durRetourner le fichier au clientRetourner le fichier au clientLibérer la connexion TCPLibérer la connexion TCP

Page 128: 3 . La couche application

Le Web - IntroductionLe Web - Introduction

Le problème de cette conception est que le Le problème de cette conception est que le volume de réponses qu’un serveur peut fournir volume de réponses qu’un serveur peut fournir est lié au temps d’accès au disque dur. Soit, un est lié au temps d’accès au disque dur. Soit, un maximum de 200 réponses par seconde, ce qui maximum de 200 réponses par seconde, ce qui est trop faible.est trop faible.

Une amélioration évidente peut être réalisée en Une amélioration évidente peut être réalisée en gardant en mémoire les pages les plus gardant en mémoire les pages les plus demandées (cache).demandées (cache).

Pour encore améliorer, il est possible de traiter Pour encore améliorer, il est possible de traiter les demandes en parallèle sur plusieurs les demandes en parallèle sur plusieurs serveurs Web.serveurs Web.

Page 129: 3 . La couche application

Le Web – URLLe Web – URL

Pour assurer les liens entre les pages, il Pour assurer les liens entre les pages, il est rapidement devenu nécessaire de est rapidement devenu nécessaire de répondre aux questions :répondre aux questions :Où est le nom de la page ?Où est le nom de la page ?Où la page se trouve-t-elle ?Où la page se trouve-t-elle ?Comment peut-on accéder à la page ?Comment peut-on accéder à la page ?

Page 130: 3 . La couche application

Le Web – URLLe Web – URL

Si chaque page recevait un nom unique, il n’y Si chaque page recevait un nom unique, il n’y aurait aucune ambiguïté dans l’identification des aurait aucune ambiguïté dans l’identification des pages.pages.

Toutefois, ce nom unique ne donnerait pas Toutefois, ce nom unique ne donnerait pas encore un mécanisme pour trouver la page encore un mécanisme pour trouver la page (exemple : le numéro de sécurité sociale ne (exemple : le numéro de sécurité sociale ne permet pas de trouver quelqu’un)permet pas de trouver quelqu’un)

Les concepteur on décidé de répondre aux trois Les concepteur on décidé de répondre aux trois questions en même temps.questions en même temps.

Page 131: 3 . La couche application

Le Web – URLLe Web – URL

Chaque page reçoit une URL (Chaque page reçoit une URL (Uniform Uniform Ressource LocatorRessource Locator) qui lui sert de nom ) qui lui sert de nom universel.universel.

Chaque URL se compose de trois parties :Chaque URL se compose de trois parties :Le protocole, ou technique de transportLe protocole, ou technique de transportLe nom DNS de la machine qui héberge la Le nom DNS de la machine qui héberge la

pagepageLe nom local permettant d’identifier la page Le nom local permettant d’identifier la page

(nom du fichier).(nom du fichier).

Page 132: 3 . La couche application

Le Web – URLLe Web – URL

Exemple :Exemple :

HTTP://www.cs.vu.nl/video/index-en.htmlHTTP://www.cs.vu.nl/video/index-en.html

Protocole Nom DNS Nom local

Page 133: 3 . La couche application

Le Web – URLLe Web – URL

De nombreux site possèdent des De nombreux site possèdent des raccourcis sur les URL :raccourcis sur les URL :Lorsque le nom de fichier local est nul, il Lorsque le nom de fichier local est nul, il

désigne le fichier de la page principale du désigne le fichier de la page principale du serveur.serveur.

Lorsque le fichier nommé est un répertoire, le Lorsque le fichier nommé est un répertoire, le serveur retourne le fichier index.html se serveur retourne le fichier index.html se trouvant dans ce répertoiretrouvant dans ce répertoire

La chaine ~utilisateur/ renvoie implicitement La chaine ~utilisateur/ renvoie implicitement au répertoire www de l’utilisateur en questionau répertoire www de l’utilisateur en question

Page 134: 3 . La couche application

Le Web – URLLe Web – URL

Pour qu’un lien soit cliquable, il faut que le Pour qu’un lien soit cliquable, il faut que le concepteur du site spécifie :concepteur du site spécifie :Le texte cliquable du siteLe texte cliquable du siteL’URL de la page a afficher lorsque le visiteur L’URL de la page a afficher lorsque le visiteur

clique sur le texteclique sur le texteExemple :Exemple :

<a href=« http://www.cepl.lu/PDF/1/1029-F-12.pdf">Internet pour <a href=« http://www.cepl.lu/PDF/1/1029-F-12.pdf">Internet pour développeurs</a>développeurs</a>

Page 135: 3 . La couche application

Le Web – URLLe Web – URL

La technique de l’URL est ouverte : il est La technique de l’URL est ouverte : il est possible que les navigateurs utilisent possible que les navigateurs utilisent d’autres protocoles.d’autres protocoles.

Plusieurs types ont étés définisPlusieurs types ont étés définis

Page 136: 3 . La couche application

Le Web – URLLe Web – URL

NomNom Utilisée pourUtilisée pour ExempleExemple

httphttp HypertexteHypertexte http://www.cepl.lu/~mca/http://www.cepl.lu/~mca/

ftpftp FTPFTP ftp://ftp.cs.vu.nl/minix/READMEftp://ftp.cs.vu.nl/minix/README

filefile Fichier localFichier local file://usr/suzanne/prog.cfile://usr/suzanne/prog.c

newsnews Forums de Forums de discussionsdiscussions

news://comp.os.unixnews://comp.os.unix

newsnews Articles de forumsArticles de forums news://[email protected]://[email protected]

gophergopher GopherGopher gopher://gopher.tc.umn.edu/11/Librairiesgopher://gopher.tc.umn.edu/11/Librairies

mailtomailto Envoi de messagesEnvoi de messages mailto://[email protected]://[email protected]

telnettelnet Ouverture de session Ouverture de session à distanceà distance

telnet://www.w3.org:80telnet://www.w3.org:80

Page 137: 3 . La couche application

Le Web – URLLe Web – URL

http est le protocole commun a tous les http est le protocole commun a tous les serveurs web. Nous le détaillerons plus serveurs web. Nous le détaillerons plus tard.tard.

ftp est le protocole d’échange de fichiers ftp est le protocole d’échange de fichiers de l’Internet. Le Web n’a rien changé à ce de l’Internet. Le Web n’a rien changé à ce protocole, si ce n’est un accès plus facile.protocole, si ce n’est un accès plus facile.

file permet d’accéder aux fichiers locaux à file permet d’accéder aux fichiers locaux à l’aide du navigateur. Il ne fonctionne pas l’aide du navigateur. Il ne fonctionne pas pour les fichiers distants.pour les fichiers distants.

Page 138: 3 . La couche application

Le Web – URLLe Web – URL

Bien avant l’arrivée de la toile, les news Bien avant l’arrivée de la toile, les news étaient un moyen d’échanger de étaient un moyen d’échanger de l’information sur différents sujets à l’aide l’information sur différents sujets à l’aide de l’Internet. Le protocole news permet d’y de l’Internet. Le protocole news permet d’y accéder depuis le navigateur. Le accéder depuis le navigateur. Le protocole utilisé est NNTP (Network News protocole utilisé est NNTP (Network News Transport Protocol).Transport Protocol).

Page 139: 3 . La couche application

Le Web – URLLe Web – URL

gopher était une technique d’extraction gopher était une technique d’extraction d’informations développée par l’université du d’informations développée par l’université du Minnesota. Gopher est semblable au web, mais Minnesota. Gopher est semblable au web, mais limité au seules informations texte. Il est limité au seules informations texte. Il est obsolète.obsolète.

mailto permet d’envoyer un courrier depuis le mailto permet d’envoyer un courrier depuis le navigateur web. Bien souvent, le navigateur fait navigateur web. Bien souvent, le navigateur fait appel au client de messagerie (Outlook, appel au client de messagerie (Outlook, Eurdora, etc.)Eurdora, etc.)

Page 140: 3 . La couche application

Le Web – URLLe Web – URL

telnet est utilisé pour établir une connexion telnet est utilisé pour établir une connexion comme avec le programme telnet.exe.comme avec le programme telnet.exe.Il établit une connexion TCP sur un port Il établit une connexion TCP sur un port particulier à déterminer par l’utilisateur.particulier à déterminer par l’utilisateur.

Page 141: 3 . La couche application

Le Web – URLLe Web – URL

Le seul point faible de l’URL est qu’il ne permet Le seul point faible de l’URL est qu’il ne permet de consulter une information qu’à un endroit de consulter une information qu’à un endroit donné. Il est impossible de dire, je voudrais la donné. Il est impossible de dire, je voudrais la page xyz, peut importe où elle se trouve.page xyz, peut importe où elle se trouve.

Pour résoudre ce problème, l’IETF travaille Pour résoudre ce problème, l’IETF travaille actuellement sur un standard URN (Universal actuellement sur un standard URN (Universal Ressource Names). Cette technique est encore Ressource Names). Cette technique est encore au stade de la recherche, mais peut être au stade de la recherche, mais peut être consultée dans la RFC 2141.consultée dans la RFC 2141.

Page 142: 3 . La couche application

Le Web - HTTPLe Web - HTTP

Le protocole HTTP (Hyper Text Transfer Le protocole HTTP (Hyper Text Transfer Protocol) défini le format de l’échange Protocol) défini le format de l’échange entre le navigateur et le serveur web.entre le navigateur et le serveur web.

Chaque échange consiste en une requête Chaque échange consiste en une requête au format ASCII, suivie d’une réponse de au format ASCII, suivie d’une réponse de type MIME au format RFC822.type MIME au format RFC822.

RFC 2616RFC 2616

Page 143: 3 . La couche application

Le Web - HTTPLe Web - HTTP

La méthode habituelle est que le client La méthode habituelle est que le client établi une connexion TCP sur le port 80 du établi une connexion TCP sur le port 80 du serveur.serveur.

L’avantage de TCP est de ne pas devoir L’avantage de TCP est de ne pas devoir s’occuper d’éventuels problèmes sur la s’occuper d’éventuels problèmes sur la transmission d’informations.transmission d’informations.

Page 144: 3 . La couche application

Le Web - HTTPLe Web - HTTP

HTTP/1.0 permettait d’envoyer une seule HTTP/1.0 permettait d’envoyer une seule requête ASCII et de recevoir la réponse à requête ASCII et de recevoir la réponse à cette requête. Ensuite, la connexion était cette requête. Ensuite, la connexion était interrompue.interrompue.

Rapidement, avec l’apparition des pages Rapidement, avec l’apparition des pages au contenu composé d’images, d’icônes et au contenu composé d’images, d’icônes et autre élément attractif pour l’œil, plusieurs autre élément attractif pour l’œil, plusieurs connexions devaient être établies pour connexions devaient être établies pour afficher une seule page.afficher une seule page.

Page 145: 3 . La couche application

Le Web - HTTPLe Web - HTTP

HTTP/1.1 a solutionné ce problème en HTTP/1.1 a solutionné ce problème en gérant les connexions persistantes. Sur gérant les connexions persistantes. Sur une seule connexion TCP, il est possible une seule connexion TCP, il est possible d’effectuer plusieurs requêtes HTTP.d’effectuer plusieurs requêtes HTTP.

Page 146: 3 . La couche application

Le Web - HTTPLe Web - HTTP

Le protocole HTTP est relativement générique Le protocole HTTP est relativement générique pour permettre d’autres utilisations (comme pour permettre d’autres utilisations (comme SOAP).SOAP).

Il gère d’autres opérations, appelées méthodes, Il gère d’autres opérations, appelées méthodes, que simplement la requête de ressources.que simplement la requête de ressources.

Chaque requête se compose d’une ou plusieurs Chaque requête se compose d’une ou plusieurs lignes ASCII, dont la première débute par le nom lignes ASCII, dont la première débute par le nom de méthode appelée.de méthode appelée.

Les méthodes sont sensibles à la casse.Les méthodes sont sensibles à la casse.

Page 147: 3 . La couche application

Le Web - HTTPLe Web - HTTP

MéthodeMéthode DescriptionDescription

GETGET Requête de lecture d’une pageRequête de lecture d’une page

HEADHEAD Requête de lecture d’un en-tête de pageRequête de lecture d’un en-tête de page

PUTPUT Requête de stockage de pageRequête de stockage de page

POSTPOST Ajout du contenu de la requête (exemple une page web)Ajout du contenu de la requête (exemple une page web)

DELETEDELETE Suppression de la pageSuppression de la page

TRACETRACE Demande de retour de la requête entranteDemande de retour de la requête entrante

CONNECTCONNECT Réservée à un futur usageRéservée à un futur usage

OPTIONSOPTIONS Requêtes d’informations sur certaines optionsRequêtes d’informations sur certaines options

Page 148: 3 . La couche application

Le Web - HTTPLe Web - HTTP

GET demande au serveur d’envoyer la GET demande au serveur d’envoyer la page (ou le fichier objet). Ce fichier est page (ou le fichier objet). Ce fichier est codé au format MIME et envoyé au client.codé au format MIME et envoyé au client.La grande majorité des requêtes se font La grande majorité des requêtes se font via cette méthode.via cette méthode.Exemple : Exemple :

GET nomdefichier HTTP/1.1GET nomdefichier HTTP/1.1

Page 149: 3 . La couche application

Le Web - HTTPLe Web - HTTP

HEAD demande simplement l’en-tête du HEAD demande simplement l’en-tête du message sans obtenir le contenu de la message sans obtenir le contenu de la page.page.Cette méthode peut servir à Cette méthode peut servir à Obtenir la date de dernière mise à jour de la Obtenir la date de dernière mise à jour de la

pagepageCollecter des informations pour une Collecter des informations pour une

indexationindexationVérifier la validité d’une URLVérifier la validité d’une URL

Page 150: 3 . La couche application

Le Web - HTTPLe Web - HTTP

PUT permet d’écrire une page sur un PUT permet d’écrire une page sur un serveur (inverse de GET).serveur (inverse de GET).

POST ressemble à la méthode PUT, mais POST ressemble à la méthode PUT, mais au lieu de remplacer des données au lieu de remplacer des données existantes, elle ajoute de nouvelles existantes, elle ajoute de nouvelles données.données.

Les données sont transmises au format Les données sont transmises au format MIME (avec le paramètre Content-type)MIME (avec le paramètre Content-type)

Ces deux méthodes sont peu utiliséesCes deux méthodes sont peu utilisées

Page 151: 3 . La couche application

Le Web - HTTPLe Web - HTTP

DELETE permet de supprimer une page.DELETE permet de supprimer une page.Dans les méthodes PUT, POST et Dans les méthodes PUT, POST et

DELETE, l’authentification de l’utilisateur DELETE, l’authentification de l’utilisateur joue un rôle primordial.joue un rôle primordial.Aucune garantie de suppression ou Aucune garantie de suppression ou d’écriture n’est assurée.d’écriture n’est assurée.

Page 152: 3 . La couche application

Le Web - HTTPLe Web - HTTP

TRACE sert au déboggage pour connaître TRACE sert au déboggage pour connaître exactement ce que le serveur a reçu exactement ce que le serveur a reçu comme requêtecomme requête

OPTIONS permet d’interroger le serveur OPTIONS permet d’interroger le serveur pour connaître certaines propriétés d’un pour connaître certaines propriétés d’un fichier.fichier.

Page 153: 3 . La couche application

Le Web - HTTPLe Web - HTTP

Chaque requête est suivie d’une réponse Chaque requête est suivie d’une réponse se composant :se composant :D’une ligne d’étatD’une ligne d’étatD’informations supplémentaires D’informations supplémentaires

Par exemple, le contenu d’une page Web.Par exemple, le contenu d’une page Web.La ligne d’état contient un code à 3 La ligne d’état contient un code à 3

chiffres qui indique si la requête a pu être chiffres qui indique si la requête a pu être satisfaite et dans la négative, la raison.satisfaite et dans la négative, la raison.

Page 154: 3 . La couche application

Le Web - HTTPLe Web - HTTP

Le premier chiffre réparti les réponses en 5 Le premier chiffre réparti les réponses en 5 catégories :catégories :

CodeCode SignificationSignification ExemplesExemples

1xx1xx InformationInformation 100 = le serveur accepte de traîter la requête du client100 = le serveur accepte de traîter la requête du client

2xx2xx SuccèsSuccès 200 = la requête a réussi ; 204 = contenu non présent200 = la requête a réussi ; 204 = contenu non présent

3xx3xx RedirectionRedirection 301 = page déplacée ; 304 = page en cache toujours visible301 = page déplacée ; 304 = page en cache toujours visible

4xx4xx Erreur clientErreur client 403 = page interdite ; 404 = page inexistante403 = page interdite ; 404 = page inexistante

5xx5xx Erreur serveurErreur serveur 500 = erreur interne ; 503 = requête à tenter plus tard500 = erreur interne ; 503 = requête à tenter plus tard

Page 155: 3 . La couche application

Le Web - HTTPLe Web - HTTP

La ligne de requête peut être suivie de La ligne de requête peut être suivie de lignes supplémentaires : les en-têtes de lignes supplémentaires : les en-têtes de message (message (request headersrequest headers))

Les réponses peuvent également avoir Les réponses peuvent également avoir des en-tête de réponsedes en-tête de réponse

Certains en-têtes peuvent être utilisés Certains en-têtes peuvent être utilisés dans les deux sensdans les deux sens

Page 156: 3 . La couche application

Le Web - HTTPLe Web - HTTP

En-têteEn-tête TypeType ContenuContenu

User-AgentUser-Agent RequêteRequête Informations sur le navigateur et sa plateformeInformations sur le navigateur et sa plateforme

AcceptAccept RequêteRequête Le type de pages que le client peut traiter (text/html)Le type de pages que le client peut traiter (text/html)

Accept-CharsetAccept-Charset RequêteRequête Le jeux de caractère accepté par le client (ISO-8859-1)Le jeux de caractère accepté par le client (ISO-8859-1)

Accept-EncodingAccept-Encoding RequêteRequête Les codages de la page que le client peut accepter Les codages de la page que le client peut accepter (gzip)(gzip)

Accept-LanguageAccept-Language RequêteRequête Les langues naturelles que le client peut gérér (french)Les langues naturelles que le client peut gérér (french)

HostHost RequêteRequête Le nom DNS du serveur (obligatoire)Le nom DNS du serveur (obligatoire)

AuthorizationAuthorization RequêteRequête Informations sur l’identité du client Informations sur l’identité du client

CookieCookie RequêteRequête Retourne au serveur un cookie qu’il a placé au préalable Retourne au serveur un cookie qu’il a placé au préalable (voir RFC 2109)(voir RFC 2109)

DateDate Les deuxLes deux La date et l’heure auxquelles le message a été envoyéLa date et l’heure auxquelles le message a été envoyé

UpgradeUpgrade Les deuxLes deux Le protocole sur lequel l’émetteur veut basculerLe protocole sur lequel l’émetteur veut basculer

Page 157: 3 . La couche application

Le Web - HTTPLe Web - HTTP

En-têteEn-tête TypeType ContenuContenu

ServerServer RéponseRéponse Informations sur le serveurInformations sur le serveur

Content-EncodingContent-Encoding RéponseRéponse La méthode de codage du contenuLa méthode de codage du contenu

Content-LanguageContent-Language RéponseRéponse La langue naturelle de la pageLa langue naturelle de la page

Content-LengthContent-Length RéponseRéponse La longueur de la page en octetsLa longueur de la page en octets

Content-typeContent-type RéponseRéponse Le type MIME de la pageLe type MIME de la page

Last-ModifiedLast-Modified RéponseRéponse L’heure et la date auxquelles la page a été modifiéeL’heure et la date auxquelles la page a été modifiée

LocationLocation RéponseRéponse Une commande pour le client lui demandant Une commande pour le client lui demandant d’envoyer sa requête ailleursd’envoyer sa requête ailleurs

Accept-RangesAccept-Ranges RéponseRéponse Le serveur acceptera des requêtes par plages Le serveur acceptera des requêtes par plages d’octetsd’octets

Set-cookieSet-cookie RéponseRéponse Le serveur souhaite que le client enregistre un Le serveur souhaite que le client enregistre un cookiecookie