Client/ protocoles internet et Web Fabien Rico (fabien.rico@univ-lyon1.fr) Olivier Glück Univ. Claude Bernard Lyon 1 séance 5 c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 1 / 42
1 Messagerie électronique Composants Agent utilisateur Protocoles Contenu des mails 2 HTTP : le protocole du Web Introduction URL Client/ Protocole HTTP 3 Conclusion c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 2 / 42
Composants Courrier électronique : les composants 3 composants principaux : c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 3 / 42
Composants Courrier électronique : les composants 3 composants principaux : Agent de transfert de mail Transfert Agent (MTA) c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 3 / 42
Composants Courrier électronique : les composants 3 composants principaux : Agent de transfert de mail Transfert Agent (MTA) Agent de livraison Delivery Agent (MDA) c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 3 / 42
Composants Courrier électronique : les composants 3 composants principaux : Agent de transfert de mail Transfert Agent (MTA) Agent de livraison Delivery Agent (MDA) Agent utilisateur User Agent (MDA) Client c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 3 / 42
Composants Courrier électronique : les composants 3 composants principaux : Agent de transfert de mail Transfert Agent (MTA) Agent de livraison Delivery Agent (MDA) Agent utilisateur User Agent (MDA) Client c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 3 / 42
Composants Transfert Agent (MTA) le bureau de poste reçoit les messages depuis les autres MTA ou les clients mail, transmet les messages aux autres MTA, Gère une liste de messages sortants utilise le protocol Simple Transfer Protocol () modèle C/S : Client (émetteur) - (MTA récepteur) le client se connecte sur le port 25/TCP du serveur pour transférer son message Exemple sendmail, exim, postfix, exchange, Lotus Domino POP POP Client HTTP Client Client Client IMAP POP Client File des messages sortant Boite mail des utilisateurs c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 4 / 42
Composants Delivery Agent (MDA) le facteur reçoit les messages depuis le autres MTA Final, stocke les messages dans les boites aux lettres utilisateurs, autres tâches : tri, filtre (antispam,...) antivirus... généralement ce rôle est assuré par le MTA Exemple procmail, maildrop,... POP POP Client HTTP Client Client Client IMAP POP Client File des messages sortant Boite mail des utilisateurs c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 5 / 42
Composants Delivery Agent (MDA) le facteur reçoit les messages depuis le autres MTA Final, stocke les message dans les boites aux lettres utilisateurs, autres tâches : tris, filtre (antispam,...) antivirus... généralement ce rôle est assuré par le MTA Exemple procmail, maildrop,... POP POP Client HTTP Client Client Client IMAP POP Client File des messages sortant Boite mail des utilisateurs c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 6 / 42
Composants User Agent (MUA) Le stylo et le papier composition, édition, lecture du courrier électronique dialogue un serveur pour émettre/recevoir des messages Plusieurs protocoles : pour envoyer les messages au serveur POP, IMAP, HTTP,...pour lire les messages ex : Kmail, Thunderbird, Outlook, elm, pine,... POP POP Client HTTP Client Client IMAP POP Client File des messages sortants Boite mail des utilisateurs c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 7 / 42 Client
Composants Parcours d un mail 1 send sortant entrant Éméteur POP ou IMAP Récepteur 1 L utilisateur écrit un mail. c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 8 / 42
Composants Parcours d un mail 1 send 2 sortant entrant Éméteur POP ou IMAP Récepteur 1 L utilisateur écrit un mail. 2 Il est envoyé au serveur via. c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 8 / 42
Composants Parcours d un mail 1 send 2 sortant entrant Éméteur 3 POP ou IMAP Récepteur 1 L utilisateur écrit un mail. 2 Il est envoyé au serveur via. 3 Ce dernier le stocke dans sa liste de messages sortants. c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 8 / 42
Composants Parcours d un mail 1 send 2 sortant 4 entrant Éméteur 3 POP ou IMAP Récepteur 1 L utilisateur écrit un mail. 2 Il est envoyé au serveur via. 3 Ce dernier le stocke dans sa liste de messages sortants. 4 Le serveur l envoie au serveur distant. c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 8 / 42
Composants Parcours d un mail 1 send 2 sortant 4 entrant Éméteur 3 POP ou IMAP Récepteur 5 1 L utilisateur écrit un mail. 2 Il est envoyé au serveur via. 3 Ce dernier le stocke dans sa liste de messages sortants. 4 Le serveur l envoie au serveur distant. 5 Qui le délivre dans la boite de l utilisateur. c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 8 / 42
Composants Parcours d un mail 1 send 6 get 2 sortant 4 entrant 6 Éméteur 3 POP ou IMAP Récepteur 5 1 L utilisateur écrit un mail. 2 Il est envoyé au serveur via. 3 Ce dernier le stocke dans sa liste de messages sortants. 4 Le serveur l envoie au serveur distant. 5 Qui le délivre dans la boite de l utilisateur. 6 Lorsque le destinataire lit ses nouveaux mails, son agent contacte le serveur pour obtenir le mail. c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 8 / 42
Composants Questions 1 send 6 get 2 sortant 4 entrant 6 Éméteur 3 POP ou IMAP Récepteur 5 Dans les débuts du courrier électronique il n y avait pas de protocole d accès était juste prévu pour échanger du courrier entre le serveur de l émetteur (client) et le serveur du récepteur (serveur) étapes 3-4-5 uniquement Pourquoi y a-t il eu apparition des protocoles d accès? Pourquoi une file des messages sortants? Pourquoi ne pas mettre le serveur sortant directement sur le poste utilisateur? c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 9 / 42
Agent utilisateur Configuration d un agent utilisateur Configuration du serveur sortant : Identité nom adresse courriel méthode c-à-d généralement sendmail (MTA local) ou, serveur sortant : adresse et port (25 ou 465 pour SSL), authentification : login, mdp et méthode. Configuration du serveur entrant Selon le protocole Protocole POP (les mails sont lus et rapatriés en local) serveur : adresse et port (110 ou 995 pour SSL), identité sur le serveur : login, mdp et méthode, gestion des mails (conserver sur le serveur, devenir des doubles,...) POP est simple est proposé par tous les fournisseurs de mails. Mais il rend difficile la consultation depuis plusieurs sources (telephone+bureau+domicile) c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 10 / 42
Agent utilisateur Configuration d un agent utilisateur Configuration du serveur entrant (suite) Protocole IMAP (les mails sont conservés sur le serveur, le client maintient une copie locale qu il synchronise). serveur : adresse et port (143 ou 993 pour SSL), identité sur le serveur : login, mdp et méthode, mode de synchronisation (imap déconnecté = lecture total pour consultation hors connexion ou lecture des entête) gestion des dossiers. Le protocole IMAP est plus complexe mais permet une meilleure gestion des mails. Il permet la consultation depuis plusieurs clients différents avec synchronisation. Il est utilisé par les collectitiels (Groupwares). c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 11 / 42
Protocoles Le protocole [RFC 821] Transfert direct entre le serveur émetteur et le serveur récepteur (port 25/TCP) 3 phases de transfert handshaking (établissement de la connexion) transfert d un ou plusieurs messages fermeture de la connexion Les connexions sont persistentes si plusieurs messages à destination du même serveur sont en attente sur le serveur émetteur, ils transiteront tous sur la même connexion TCP c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 12 / 42
Protocoles Le protocole [RFC 821] Une succession de Commande/Réponse Commande : texte ASCII (HELP, HELO, MAIL FROM :, RCPT TO :, DATA,...) Réponse : code d état (status) + phrase Un message peut contenir plusieurs objets; ils sont alors envoyés dans un message multipart (contrairement à HTTP : 1 objet = 1 réponse) Le serveur utilise CRLF.CRLF pour reconnaître la fin d un message Les messages (en-tête ET corps) sont transférés en ASCII 7 bits (US-ASCII) il peut donc y avoir un problème d encodage. c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 13 / 42
Protocoles La boite au lettre En général c est : fichier contenant les mails (mailbox) un ensemble de fichiers (maildir) Pour accéder au mail, on peut utiliser un accès distant, un partage de fichier (reseau local), un protocole spécifique (POP, IMAP), un webmail c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 14 / 42
Protocoles Le protocole POP3 Principe est extrêmement simple Le client peut : lister les mails disponibles ( list ), rapatrier un mail (retr <num>), supprimer un mail (dele <num>). Protocole limité : permet uniquement de télécharger des messages depuis le serveur en laissant éventuellement une copie de ceux-ci dans la BAL de l utilisateur pas adapté aux utilisateurs nomades : impossible de gérer des répertoires sur le serveur impossible de gérer les messages en les laissant sur le serveur IMAP répond à cette problématique au prix d un protocole beaucoup plus complexe c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 15 / 42
Protocoles Le protocole IMAP [RFC 3501] IMAP permet la gestion distante des messages associe un message à un répertoire distant sur le serveur permet à l utilisateur de faire une recherche dans les messages sur le serveur permet de ne consulter que des extraits de messages (par exemple que l en-tête ou que la partie texte d un message multipart...) contrairement à POP3, IMAP conserve des informations d état sur chaque utilisateur (noms des répertoires, listes des messages qu ils contiennent...) c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 16 / 42
Protocoles Cas du webmail Le MUA est un logiciel web méthode la plus utilisée par le grand public pas de protocole d accès, utilisation d un navigateur web problème de compréhension Intérêts : pas de configurations de la part de l utilisateur final; disponibilité (http); sécurité (a cause de la configuration); fiabilité (centralisations des données). Inconvénients : interface limitée; utilisation des ressources; confidentialité; dépendance. c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 17 / 42
Protocoles Les alias Adresse d un destinataire : bal@nom domaine Problème : bal n est pas forcément le login de l utilisateur nom domaine n est pas forcément le nom du serveur de mail contenant les BAL bal peut représenter plusieurs destinataires (listes) Il faut faire des alias (souvent /etc/aliases) Olivier. Gluck > /var/mail/ogluck ens lyon. fr > mailhost. ens lyon. fr c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 18 / 42
Contenu des mails Entête Un message est composé d un en-tête et d un corps (RFC 822) les champs de l en-tête peuvent être positionnés soit par l agent utilisateur émetteur, soit par le serveur entrant, soit par le serveur sortant un champ d en-tête est de la forme nom champ: valeur<crlf> l en-tête contient au minimum les champs From et To, très souvent le champ Subject peut permettre de mettre en place des filtres... c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 19 / 42
Contenu des mails Le codage des messages est prévu pour transférer des caractères US-ASCII sur 7 bits problème de la représentation des caractères accentués, du transfert des octets (images...) Pour transférer une image ou du texte accentué, l agent utilisateur émetteur/récepteur doit encoder/décoder le contenu du message Encodage quoted-printable les ASCII étendus sont codés par =xx où xx est le code hexadécimal du caractère à encoder; généralement utilisé pour transférer du texte. Encodage base64 : 3 octets codés sur 4 carractère NVT (6 bits); généralement utilisé pour transférer des flux d octets. E évolution de pour transférer les message directement; spécifié par Content Transfer Encoding: 8bit ou Binary dans l en-tête. c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 20 / 42
Contenu des mails Le type des données Le mail permet de transférer tout type de données : texte simple image texte formaté (html) documents attachés... Il faut pouvoir retrouver le type des données transférée Il n est pas possible de se servir de l extention (car tous les systèmes ne l utilisent pas) On utilise un moyen pour déclarer le type : le type MIME c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 21 / 42
Contenu des mails Les types MIME [RFC 2045, 2056] MIME : Multi-purpose Internet Extensions Permet l échange de fichiers multimédias entre machines quelconques en spécifiant dans l en-tête le type du fichier en vue d un traitement par l agent utilisateur destinataire le codage des données du fichier Les commandes MIME ont été intégrées dans HTTP1.0 Un type MIME est composé d un type général (text, image, audio, video, application...) et d un sous-type (image/gif, image/jpeg, application/pdf, application/ rtf, application/msword, text/ plain, text/html) En perpétuelle évolution La machine cliente doit ensuite associer l exécution d une application à chaque type MIME c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 22 / 42
Contenu des mails Exemple Content Type: type/subtype; parameters Lignes supplémentaires dans l en-tête du message pour déclarer un type MIME et un encodage Exemple From: RICO FABIEN <fabien. rico@univ lyon1. fr> To: RICO FABIEN <fabien. rico@univ lyon1. fr> Date: Sun, 12 Dec 2010 22:35:44 +0100 Subject : test... 005 20101212225237861fabienricounivlyon1fr Content Type: image/ png; name="jp_ordi.png" Content Description : jp ordi.png Content Disposition : attachment ; filename="jp_ordi.png"; size =50133; creation date="sun, 12 Dec 2010 22:52:44 GMT"; modification date="sun, 12 Dec 2010 22:52:44 GMT" Content Transfer Encoding: base64... c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 23 / 42
Contenu des mails Le type Multipart Un message peut contenir plusieurs objets; ils sont alors envoyés dans un message multipart (contrairement à HTTP : 1 objet = 1 réponse) Le message est signalé par le type multipart/mixed On lui associe une chaîne de caractères pour marquer la frontière entre les objets. Chaque objet a un type Il est aussi possible de définir des alternatives (message text/html) Exemple Content Type: multipart/mixed; boundary="_005_20101212225237861fabienricounivlyon1fr_" MIME Version : 1.0... 005 20101212225237861fabienricounivlyon1fr Content Type: text/plain ; charset="utf-8" Content Transfer Encoding: base64... 005 20101212225237861fabienricounivlyon1fr Content Type: application/pdf ; name="cm6-mail-web.pdf" Content Description : cm6 mail web. pdf... c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 24 / 42
HTTP : le protocole du Web Introduction Worl Wide Web Architecture pour accéder à des documents liés entre eux et situés sur des machines reliées par Internet Architecture basée sur 3 concepts : la localisation URL le protocole HTTP le langage HTML Popularité due à : interfaces graphiques conviviales très grande quantité d informations grande diversité des informations c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 25 / 42
HTTP : le protocole du Web Introduction Le jargon du Web Une page Web : contient des objets désignée par une adresse (URL) La plupart des pages Web contiennent : du code HTML de base des objets référencés L URL a au moins deux composantes : le nom d hôte contenant la page Web le chemin d accès sur l hôte L Agent Utilisateur pour le Web est le browser : MS Internet Explorer Firefox... Le serveur Web : Apache (domaine public) MS Internet Information Server c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 26 / 42
HTTP : le protocole du Web Introduction Fonctionnement du Web Le client (navigateur ou browser) dialogue avec un serveur Web selon le protocole HTTP Le serveur vérifie la demande, les autorisations et transmet l information Le navigateur interprète le fichier reçu et l affiche (le navigateur, un plug-in ou un helper) A ce schéma de base, peuvent s ajouter : des contrôles par compte individuel, par domaine, par adresse IP... des exécutions de code coté serveur et/ou coté client c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 27 / 42
HTTP : le protocole du Web URL Adressage des documents Il faut nommer, localiser et accéder à une page : 3 questions : Quoi? Où? Comment? Solution : URL - Uniform Resource Locator : Adresse universelle de ressource en 3 parties : le protocole (comment), le nom DNS (où) et le nom du document (quoi) URL URI (Universal Resource Identifier) un sur-ensemble des URLs URL classique (simplifiée) : http://www.monsite.fr/projet/doc.html c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 28 / 42
HTTP : le protocole du Web URL Composantes d une URL proto://login:mot_de_pass@host_name:port/chemin/d/acces/fichier?arguments#balise proto : le protocole d accès (ex http, ftp,...) login/mot de passe : information d authentification en clair host name : le FQDN du serveur à contacter port : le port sur le serveur /chemin/d/acces/ : le chemin d accès sur le serveur, la racine de ce chemin est définie par le serveur fichier : le fichier à lire argument : les argument à transmettre au serveur la base balise : la position dans la page (pour positionner le navigateur). c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 29 / 42
HTTP : le protocole du Web URL URL relative Url relative un lien vers images/new.gif dans la page http://www.monsite.fr/projet/doc.html est un lien vers http://www.monsite.fr/projet/images/new.gif le navigateur client reconstruit l URL absolue pour faire la requête la balise HTML <BASE href="url"> permet de positionner la racine pour les URLs relatives du document contenant cette balise c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 30 / 42
HTTP : le protocole du Web Client/ Vision côté client Le navigateur (browser) va rechercher la page demandée interprète les commandes de formatage et de mise en forme (police, gras, couleurs...) va rechercher et affiche des images animation (code JavaScript, gifs...) affiche la page correctement formatée c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 31 / 42
HTTP : le protocole du Web Client/ Vision côté serveur Le serveur est en permanence à l écoute des requêtes formulées par les clients Il vérifie la validité de la requête... adresse correcte (URL) client autorisé à accéder au document... et y répond : envoi du texte, des images, du code à exécuter sur le client, d un message d erreur, d une demande d authentification,... Il peut exécuter un programme localement qui va générer une réponse HTML (pages dynamiques) c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 32 / 42
HTTP : le protocole du Web Client/ Formulaire Apporte de l inter-activité avec l utilisateur en proposant des zones de dialogue : un formulaire n est qu une interface de saisie! Selon les choix de l utilisateur, il faut y associer un traitement sur le client avec JavaScript par exemple sur le serveur par l intermédiaire de CGI, PHP,... Exemples typiques d utilisation de formulaire commandes, devis via Internet moteurs de recherche interactions avec une base de données c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 33 / 42
HTTP : le protocole du Web Client/ Principe du formulaire On décrit à l aide de balises HTML les différents champs de saisie Chaque zone est identifiée par un nom symbolique auquel sera associée une valeur par l utilisateur Quand le formulaire est soumis, les couples (nom/valeur) de toutes les zones sont transmis dans la requête HTTP au serveur A chaque zone de saisie peut être associé un traitement sur le client par l intermédiaire d un événement JavaScript c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 34 / 42
HTTP : le protocole du Web Client/ Transfert de données Pour utiliser les formulaires, il faut que le client puisse envoyer des données : Méthode GET requête standard pour obtenir une page, transmission des données via l URL, permet d obtenir des liens vers des pages dynamiques. Méthode POST information dans le corps de la requête, plus discret mais les données sont en clair (sauf si utilisation de SSL), moyen d envoyer des informations volumineuses. Cookies données stockées sur le client mais gérées par le serveur et transmises dans l entête de la requête, information très limitée, durée de vie plus longue (session, suivi,...). c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 35 / 42
HTTP : le protocole du Web Protocole HTTP Protocole HTTP HTTP : Hyper Text Transfer Protocol Protocole régissant le dialogue entre des clients Web et un serveur (c est le langage du Web!) Fonctionnement en mode Client/ Une transaction HTTP contient le type de la requête ou de la réponse (commande HTTP) un en-tête une ligne vide un contenu (parfois vide) Très peu de type de requêtes/réponses Port standard : 80, 443 (SSL), 8080 (souvent utilisé en remplacement). c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 36 / 42
HTTP : le protocole du Web Protocole HTTP Transaction typique 1 le client contacte le serveur pour demander le document (voir l url) 2 le client ajoute un entête pour informer le serveur de sa configuration au moins le nom du serveur réclamé pour les serveurs virtuels le logiciel client les type de données supporté (images,...), encodage... les cookies... 3 le client envoie une ligne vide (fin de l en-tête) 4 le client envoie un contenu si besoin (POST) c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 37 / 42
HTTP : le protocole du Web Protocole HTTP Transaction typique 5 le serveur répond en commençant par indiquer par un code, l état de la requête 6 le serveur envoie un en-tête qui donne des informations sur lui-même et le document demandé encodage, longueur de la réponse, gestion du cache,... 7 puis une ligne vide (fin de l en-tête) 8 le contenu du document si la requête a réussi c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 38 / 42
HTTP : le protocole du Web Protocole HTTP Durée de vie des connexions HTTP 1.0 (RFC 1945) dès que le serveur a répondu à une requête, il ferme la connexion HTTP HTTP 1.1 (RFC 2068) par défaut, la connexion est maintenue tant que le serveur ou le client ne décide pas de la fermer (Connection : close) beaucoup de page comporte des liens (CSS, images,...), permet de limiter le nombre de connexions. HTTP est un protocole sans état aucune information n est conservée entre deux connexions, permet au serveur HTTP de servir plus de clients en un temps donné (gestion légère des transactions), pseudo connexion via : les sessions les cookies les champs cachés de formulaire... c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 39 / 42
HTTP : le protocole du Web Protocole HTTP Cache web Beaucoup de système utilise un cache proxy pour accéder à internet Le cache est proche du client. Réduction du temps de réponse. Réduction du débit vers les serveurs distants (ex : installation reseaux). Accès aux données protégées (ex : revue en lignes). Limiter l accès au web uniquement (ex : salle TPReseaux). Surveillance des utilisateurs (ex : réseaux nat). c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 40 / 42
HTTP : le protocole du Web Protocole HTTP Fonctionnement proxy web La requête http via un proxy est une requête qui contient l url complète à contacter GET http ://www. google. fr/ HTTP/1.1 HOST: www. google. fr Le serveur de cache transmet la requête au serveur concerné avec son identité. Il transmet la réponse mais garde une trace (log), garde une copie (cache). c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 41 / 42
Conclusion Conclusion mail et web Protocoles dont l utilisation a beaucoup évoluée. Confusion web/internet. Détournement de leur utilisation mail pour les rendez-vous, le stockage des données,... web pour les accès distants, la gestions des BD,... Raisons du succès? outils nécessaires, compatibilité, facilité d accès,... c O.Glück & F.Rico (U.C.B.L.) Client/ séance 5 42 / 42