3 . La couche application
description
Transcript of 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.
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
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.
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..
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.
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é.
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))
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.
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
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
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
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
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.
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)
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.
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
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
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).
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.
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
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 ».
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
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 ))
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
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.
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.
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
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
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 » »
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
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.
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.
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
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.
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
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
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.
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..
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.
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
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.
DNS - OutilsDNS - Outils
Les Les autres autres options options sont sont visible visible par par « ? »« ? »
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 »
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):-) ;-) :-( :-) ;-) :-(
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
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.
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).
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.
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
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.
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.
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 ?
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)
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 ……
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 ……
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
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
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……
Messagerie Messagerie Agent utilisateur (UA) Agent utilisateur (UA)
Messagerie Messagerie Agent utilisateur (UA) Agent utilisateur (UA)
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
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
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…
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
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.
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
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.
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.
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.
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.
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
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
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:;
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.
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
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.
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
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
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..
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é.
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
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.
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.
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
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.
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
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
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.
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.
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.
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.
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.
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"
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> </DIV>class=3D414152221-28112004></SPAN></FONT> </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>
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> </DIV>class=3D414152221-28112004></SPAN></FONT> </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> </DIV>class=3D414152221-28112004></SPAN></FONT> </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--
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
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
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.
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.
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
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>
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 ».
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
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
MessagerieMessagerieTransfert des messagesTransfert des messages
MessagerieMessagerieTransfert des messagesTransfert des messages
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.
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.
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.
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.
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)
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
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
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.
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.
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.
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).
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.
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.
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.
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.
Le Web - IntroductionLe Web - Introduction
ClientServer
abcd.comServer
xyz.com
InternetInternet
Connexion TCP
Lien hypertexte Lien hypertexte
Navigateur
Serveur Web
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
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.
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.
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.
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
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.
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 ?
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.
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).
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
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
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>
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
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
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.
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).
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.)
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.
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.
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
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.
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.
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.
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.
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
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
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
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
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.
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.
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.
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
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
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
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