La couche Applicatiopn A. Obaid - Téléinformatique (INF3270) Applications 1 Applications 10. SERVICES DE sur TÉLÉMATIQUE Internet Il existe plusieurs applications et leurs protocoles sur Internet: Transfert de fichiers: FTP Connexions à distance: TELNET Courrier électronique: SMTP. Serveurs d informations: HTTP, Annuaires électroniques: DNS, Service de sessions multimédia: SIP Toutes ces applications sont basées sur le modèle Client/Serveur A. Obaid - Téléinformatique (INF3270) Applications 2 1 1
Les numéros de port Les numéros de port sont sur 16 bits Intervalles de valeurs: 0 65535 0-1023 : numéros standard (well-known): 20 FTP (Données) 21 FTP (Contrôle) 22 SSH 23 Telnet 25 Simple Mail Transfer Protocol 1024-49151 : enregistrés pour des services spécifiques (IANA) ou par des programmeurs. 49152 65535 : ports dynamiques pour allocation temporaire par le système d exploitation. A. Obaid - Téléinformatique (INF3270) Applications 3 FTP File Transfer Protocole est un protocole de transfert de fichiers. Nécessite une procédure d'authentification sauf si un compte Anonymous a été créé. On peut seulement échanger des fichiers et non modifier leurs attributs. A. Obaid - Téléinformatique (INF3270) Applications 4 2 2
Modèle FTP A. Obaid - Téléinformatique (INF3270) Applications 5 Connexions FTP Deux connexions sont ouvertes en parallèle: Contrôle (ou commandes) et Données. Fonctions de contrôle: Des requêtes et réponses de contrôle sont échangées sur la connexion de contrôle (Port 21) Fonctions de transfert de données Échangées sur la connexion de données (Port 20) La connexion de contrôle reste ouverte pendant les opérations de transfert des données. A. Obaid - Téléinformatique (INF3270) Applications 6 3 3
Quelques commandes de contrôle Contrôle d'accès: USER spécifie l'user PASS spécifie le mot de passe CWD change de répertoire QUIT déconnexion Paramètres de transfert: PORT spécifie le port local pour les données TYPE spécifie la représentation des données MODE spécifie le mode de transfert (binary, ascii) Commandes de service: RETR télécharge un fichier STOR envoie de fichier PWD imprime le répertoire courant LIST transfère la liste de fichiers A. Obaid - Téléinformatique (INF3270) Applications 7 Gestion des numéros de port Le serveur gère les numéros de port du client à travers la connexion de contrôle: Deux numéros sont fournis : n et p. Le numéro de port du client est : nx256 + p. Ex: 4x256+150= 1174 A. Obaid - Téléinformatique (INF3270) Applications 8 4 4
Procédure de connexion Le client envoie une commande qui ouvre une connexion de données (ex. get, put, ls, ) Le client choisit un numéro de port éphémère et fait une demande d ouverture de connexion sur ce port. Il envoie ce numéro de port sur la connexion de contrôle Le serveur fait une demande de connexion sur ce numéro de port auprès du client. Le serveur utilise le port 20 pour son côté de cette connexion. A. Obaid - Téléinformatique (INF3270) Applications 9 Session FTP - Exemple #ftp rascal.ics.utexas.edu Connected to rascal.ics.utexas.edu. 220 rascal FTP server (SunOS 4.1) ready. Name (rascal.ics.utexas.edu:obaid): anonymous 331 Guest login ok, send ident as password. Password: 230 Guest login ok, access restrictions apply. ftp> cd /misc/av 250 CWD command successful. ftp> dir 200 PORT command successful. 150 ASCII data connection for /bin/ls (132.213.1.13,1645) (0 bytes). total 26 -rw-rw-r-- 1 67 100 233 Apr 19 14:09 README.121292 -rw-rw-r-- 1 67 100 2035 Apr 19 14:11 README.FTP... drwxrwxr-x 2 67 100 512 Mar 24 1993 humor-folder... drwxrwxr-x 9 67 120 512 Aug 21 1993 simulator-folder drwxrwxr-x 2 19 120 512 Jun 4 17:57 texas-flyers drwxrwxr-x 2 67 120 512 Oct 12 19:90 weather-services folder 226 ASCII Transfer complete. 1832 bytes received in 2.7 seconds (0.65 Kbytes/s)... A. Obaid - Téléinformatique (INF3270) Applications 10 5 5
Session FTP - Exemple #ftp> open saturne.info.uqam.ca Connected to saturne.info.uqam.ca. 220 saturne FTP server (OSF/1 Version 5.60) ready. Name (saturne.info.uqam.ca:p32224): obaid 331 Password required for obaid. Password: xxxxxxxx 230 User obaid logged in. ftp> dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls (132.208.26.13, 3369). total 1855 -rwxr-xr-x 1 obaid prof 1499 Oct 3 2007.cshrc -rwxr-xr-x 1 obaid prof 1669 Oct 3 2007.login... drwxr-xr-x 2 obaid prof 512 Mar 10 17:37 PS drwxr-xr-x 2 obaid prof 512 Mar 9 10:50 Papiers... 226 Transfer complete. A. Obaid - Téléinformatique (INF3270) Applications 11 Session FTP - Exemple #ftp -d saturne.info.uqam.ca Connected to saturne.info.uqam.ca. 220 saturne FTP server (OSF/1 Version 5.60) ready. Name (saturne.info.uqam.ca:p32224): obaid ---> USER obaid 331 Password required for obaid. Password: xxxxxxx ---> PASS??????? 230 User obaid logged in. ftp> dir ---> PORT 132,208,26,13,14,201 200 PORT command successful. ---> LIST 150 Opening ASCII mode data connection for /bin/ls (132.208.26.13,3785). total 1855 -rwxr-xr-x 1 obaid prof 1499 Oct 3 2007.cshrc -rwxr-xr-x 1 obaid prof 1669 Oct 3 2007.login 226 Transfer complete. A. Obaid - Téléinformatique (INF3270) Applications 12 6 6
Session FTP - Exemple ftp> ls ---> PORT 132,208,26,13,14,204 200 PORT command successful. ---> NLST 150 Opening ASCII mode data connection for file list (132.208.26.13,3788)..login SNMP... 226 Transfer complete. ftp> binary ---> TYPE I 200 Type set to I. A. Obaid - Téléinformatique (INF3270) Applications 13 Protocoles de transfert de courriel SMTP : Simple Mail Transfer Protocol Protocole d'échange de messages électroniques POP : Post Office Protocol Protocole de téléchargement des messages électroniques IMAP: Internet Message Access Protocol Protocole d'accès aux messages Garde les message sur le serveur de courriel A. Obaid - Téléinformatique (INF3270) Applications 14 7 7
Architecture SMTP SMTP est utilisé pour échanger des messages entre serveurs de courriel. Éléments : User agent (UA): logiciel de courriel Mail Transfer Agent (MTA): serveur de courriel Mail exchanger (MX): machine qui se charge du courriel pour un domaine donné. A. Obaid - Téléinformatique (INF3270) Applications 15 Modèle de messagerie A. Obaid - Téléinformatique (INF3270) Applications 16 8 8
Protocole SMTP Basé du le modèle Client/serveur: Client: émetteur SMTP Serveur: récepteur SMTP Dialogue alternant (dans un ordre précis): Le client émet des commandes et le serveur répond avec un message d'état. Les messages sont en ASCII On doit convertir les données binaires en ASCII en utilisant un codage tel que Unicode, Base64, A. Obaid - Téléinformatique (INF3270) Applications 17 Commandes SMTP HELO : identifie (domaine de) l'émetteur MAIL FROM: débute une transaction et identifie l'expéditeur RCPT TO: identifie le récepteur. Il peut y avoir plusieurs RCPT TO:. DATA: pour envoyer une série de lignes (chacune se terminant par \r\n). Une ligne contenant seulement un point (".") termine le message. Autres A. Obaid - Téléinformatique (INF3270) Applications 18 9 9
Session SMTP - Exemple # telnet zeta.labunix.uqam.ca 25 Trying 132.208.132.48... Connected to zeta.labunix.uqam.ca. Escape character is '^]'. 220 zeta.labunix.uqam.ca ESMTP Sendmail 8.13.8+Sun/8.13.8; Fri, 7 Dec 2012 15:25:43-0500 (EST) HELO zeta.labunix.uqam.ca 250 zeta.labunix.uqam.ca Hello zeta.labunix.uqam.ca [132.208.132.48], pleased to meet you MAIL FROM: obaid@zeta.labunix.uqam.ca 250 2.1.0 obaid@zeta.labunix.uqam.ca... Sender ok RCPT TO: obaid.abdel@gmail.com^ 250 2.1.5 obaid.abdel@gmail.com... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Bonjour Abdel Comment ca va?. quit A. Obaid - Téléinformatique (INF3270) Applications 19 En-têtes courriel Les messages contiennent plusieurs en-têtes. Certains sont créés par l'ua et d'autres sont ajoutés par le MTA Chaque MTA ajoute au moins un en-tête Received:. Quelques-uns de ces en-têtes sont lus par les MTA's intermédiaires, mais les contenus des messages sont relayés sans changement. A. Obaid - Téléinformatique (INF3270) Applications 20 10 10
Exemple de message Microsoft Mail Internet Headers Version 2.0 Received: from anis.telecom.uqam.ca ([132.208.250.6]) by brooks.dinfo.uqam.ca.. Fri, 27 Jun 2008 05:06:50-0400 Received: from anis.telecom.uqam.ca (anis.telecom.uqam.ca [132.208.250.6]) by sortant.uqam.ca (8.13.8/8.12.1) with SMTP id m5r95qvf004596; Fri, 27 Jun 2008 05:05:52-0400 (EDT) Received: from antivirus.uqam.ca ([127.0.0.1]) by anis.telecom.uqam.ca (SAVSMTP 3.1.1.32) with SMTP id M2008062705055118403 ; Fri, 27 Jun 2008 05:05:51-0400 Received: from brooks.dinfo.uqam.ca ([132.208.137.97]) by intrant.uqam.ca (8.13.8/8.12.2/uqam-filtres).. Fri, 27 Jun 2008 05:05:44-0400 (EDT) MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Fri, 27 Jun 2008 05:04:18-0400 Message-ID: <E8E7C81FED65ED4092D11F71BC761B889BE678@brooks.dinfo.uqam.ca> From: "Abdellatif Obaid" <obaid.abdellatif@uqam.ca> To: "Teodor Stefan Onea" <onea.teodor_stefan@courrier.uqam.ca>, <obaid.abdel@uqam.ca> Cc: <082-INF3270-010@uqam.ca> Return-Path: obaid.abdellatif@uqam.ca Bonjour Je donne une extension d'une semaine pour la remise du TP 2. A. Obaid - Téléinformatique (INF3270) Applications 21 POP Pour le transfert de courriel vers un client (authentifié) Le serveur POP est un service sur le port 110. Les commandes et les réponses sont en lignes ASCII. A. Obaid - Téléinformatique (INF3270) Applications 22 11 11
Commandes POP USER : spécifie un usager. PASS : spécifie un mot de passe. STAT : retourne le nombre de messages dans la boite. LIST: retourne la liste des messages et leurs tailles. RETR : récupère un message. DELE : marque les messages à détruire. RSET: efface les marques. TOP : récupère les en-têtes des messages, QUIT : détruit les message marqués et ferme la connexion. A. Obaid - Téléinformatique (INF3270) Applications 23 Session POP - Exemple telnet arabica.info.uqam.ca 110 Trying 132.208.132.189... Connected to arabica.info.uqam.ca. Escape character is '^]'. +OK POP3 arabica.info.uqam.ca v7.59 server ready user obaid +OK User name accepted, password please pass ********** +OK Mailbox open, 453 messages stat +OK 453 3732870 list +OK Mailbox scan listing follows 1 494 retr 1 +OK 494 octets Received: by saturne.info.uqam.ca; id AA07595; Fri, 7 Mar 1997 05:07:16-0500. A. Obaid - Téléinformatique (INF3270) Applications 24 12 12
Telnet Application de connexion à distance basée sur un terminal de fonctionnalité minimale : NVT (Network Virtual Terminal). Utilise les services de TCP/IP. Permet à un usager de communiquer de façon interactive avec une application à partir d'un terminal Les caractères entrés sont envoyés au serveur et les données reçues sont affichées sur l'écran du client. Le caractère de fin de ligne est \r\n. A. Obaid - Téléinformatique (INF3270) Applications 25 Terminal virtuel Développé afin de résoudre le problème d'interfonctionnement entre les terminaux et les ordinateurs dans un environnement hétérogène. A. Obaid - Téléinformatique (INF3270) Applications 26 13 13
Environnement Telnet Terminal distant Ordinateur distant Commande d usager Application système Système d exploitation Système d exploitation Serveur Client Telnet SMTP Serveur Telnet TCP TCP Internet A. Obaid - Téléinformatique (INF3270) Applications 27 Fonctionnement de NVT NVT est un ensemble de: Commandes et de réponses en ASCII. Options (de dialogues et de comportements des terminaux) qui peuvent être négociées et redéfinies à tout moment. Commandes/réponses: Un caractère (parmi 128) en code ASCII Le caractère IAC (255) définit une commande A. Obaid - Téléinformatique (INF3270) Applications 28 14 14
Commandes et réponses Fonctions de contrôle : Erase line (EL): Effacement de ligne. Erase character (EC): le dernier caractère transmis doit être effacé. Are you There (AYT): Envoyé au serveur pour savoir s il est toujours actif Entrée/affichage des données A. Obaid - Téléinformatique (INF3270) Applications 29 Commandes Telnet Abréviation Description Code IAC Début d'une commande 255 WILL/WONT/DO/DONT Option de négociation 251/../254 EC (Erase Caracter) Efface un caractère 247 EL (Erase line) Efface une ligne 248 BRK (break) Arrêt 243 IP (Interupt process) Interruption de processus 244 AO (Abord output) Arrête l'output 245 AYT (are you there) Êtes-vous là 246 GA (Go ahead) Allez y 249 DM (Data Mark) Signal de synchro 242 NOP (No Opération) Pas d'opération 241 SB/SE Débuter/arrêter sous options 250/240 A. Obaid - Téléinformatique (INF3270) Applications 30 15 15
Les options Telnet Les options de base: binary, echo, supress go ahead, status, timing mark Autres options peuvent être négociées Le format de négociation IAC <Action> <Numéro de l option> L'action peut être: WILL : l émetteur veut activer l option lui-même WONT: l émetteur veut désactiver l option lui-même DO: l émetteur veut que le récepteur active l option DONT: l émetteur veut que le récepteur désactive l option A. Obaid - Téléinformatique (INF3270) Applications 31 Négociation des options (2) WILL WILL DO DO WONT DONT DO DONT WILL WONT DONT WONT Émetteur veut activer une option Récepteur dit OK Émetteur veut activer une option Récepteur dit NON Émetteur veut que le récepteur active une option Récepteur dit OK Émetteur veut que le récepteur active une option Récepteur dit NON Émetteur veut désactiver une option Récepteur dit OK Émetteur veut que le récepteur désactive une option Récepteur dit NON A. Obaid - Téléinformatique (INF3270) Applications 32 16 16
Négociation - Exemples Exemple 1: Le client demande au serveur de ne plus envoyer d échos. Le serveur répond qu il élimine l écho. Maintenant le client pourrait faire son écho localement Exemple 2: Le client demande la négociation du terminal. Le serveur accepte et demande au client de soumettre son type de terminal. Le client envoie son type de terminal A. Obaid - Téléinformatique (INF3270) Applications 33 Session Telnet - Exemple % telnet telnet> toggle options Will show option processing. telnet> open saturne.info.uqam.ca Trying... Connected to arabica.info.uqam.ca. Escape character is '^]'. SEND do ECHO SEND do SUPPRESS GO AHEAD Négociation du mode caractère SEND will TERMINAL TYPE Envoi du type de terminal SEND will NEGOTIATE WINDOW SIZE Négociation de la taille de la fenêtre RCVD do TERMINAL TYPE Envoi du type de terminal RCVD do 32 Négociation de vitesse SEND wont 32 Refus de la négociation de vitesse RCVD do 36 Négociation de variables d env. SEND wont 36 Refus de négociation... RCVD will ECHO Le serveur fera l'écho RCVD will SUPPRESS GO AHEAD Le serveur accepte le mode RCVD do NEGOTIATE WINDOW SIZE Négocier la taille de la fenêtre SEND suboption TELOPT_NAWS Width 0, Height 0 Donner les sous options RCVD suboption TELOPT_TTYPE SEND Demande au client son terminal SEND suboption TELOPT_TTYPE vt100 Envoi du type de terminal RCVD will STATUS SEND dont STATUS OSF/1 (saturne) (ttyp1) login: obaid password: ******* A. Obaid - Téléinformatique (INF3270) Applications 34 17 17
Le DNS Les DNS (Domain Name System) est un système de répertoire sur Internet Il permet de traduire des Noms de domaine en adresses IP et inversement C'est un système réparti A. Obaid - Téléinformatique (INF3270) Applications 35 Systèmes de répertoire A chaque système, on associe un nom de domaine (ex. arabica.info.uqam.ca) La correspondance se fait dans un répertoire appelé Base de données du DNS. Deux types de répertoires: Fichier local (ex. /etc/hosts) Un système de répertoires répartis servi par des serveurs de noms (ex. named) A. Obaid - Téléinformatique (INF3270) Applications 36 18 18
Architecture du DNS Secondaires Serveur DNS Serveur DNS Client Resolver Serveur DNS Primaire Primaire Serveur DNS Secondaire Serveur DNS BD du DNS Secondaire Zone Serveur DNS Zone Zone A. Obaid - Téléinformatique (INF3270) Applications 37 Espace des noms Un nom de domaine est constitué d'une suite d'étiquettes séparées par des points. Exemples: arabica.info.uqam.ca www.google.com Chaque étiquette correspond à un domaine dans une hiérarchie de noms. A. Obaid - Téléinformatique (INF3270) Applications 38 19 19
Hiérarchie de noms. edu com net ca uk uqam udem... mcgill Nom de domaine: arabica.info.uqam.ca info arabica A. Obaid - Téléinformatique (INF3270) Applications 39 Domaines de haut niveau Appelés Top-level domain names Les noms tels que:.edu,.gov,.com,.net,.org,.mil Chaque pays a un nom de domaine (formé de 2 lettres):.ca,.fr,.br,.ch, De nouveaux domaines ont été introduits:.aero,.biz.coop,.info,.name,.pro, Descendent directement du domaine de nom racine "." (root): Ce domaine possède plusieurs serveurs! A. Obaid - Téléinformatique (INF3270) Applications 40 20 20
Les serveurs racine Il existe plusieurs serveurs du domaine root: l.root-servers.net 198.32.64.12 m.root-servers.net 202.12.27.33 a.root-servers.net 198.41.0.4 b.root-servers.net 128.9.0.107 c.root-servers.net 192.33.4.12 d.root-servers.net 128.8.10.90 e.root-servers.net 192.203.230.10 f.root-servers.net 192.5.5.241 g.root-servers.net 192.112.36.4 h.root-servers.net 128.63.2.53 i.root-servers.net 192.36.148.17 j.root-servers.net 192.58.128.30 k.root-servers.net 193.0.14.129 A. Obaid - Téléinformatique (INF3270) Applications 41 Administration d'une zone Une zone est un regroupement de systèmes administrés séparément. Une zone peut être subdivisée en sous-zones. La responsabilité d'une zone est déléguée à une autorité chargée de la gérer en : Donnant l'adresse IP du serveur de cette zone Maintenant la base de données de la zone A. Obaid - Téléinformatique (INF3270) Applications 42 21 21
Les zones et leurs serveurs. Serveur. (racine) edu com net ca Serveur Zone ca Sous-zone uqam uqam udem ca Serveur Sous-zone info info iro uqam.ca Serveur info.uqam.ca A. Obaid - Téléinformatique (INF3270) Applications 43 Composantes du DNS Le serveur qui répond aux requêtes de traduction (Résolution) Une base de données répartie contentant les noms et les adresses IP correspondantes. Le Resolver qui est un module du client qui émet des requêtes de résolution et reçoit des réponses. A. Obaid - Téléinformatique (INF3270) Applications 44 22 22
Modèle du DNS Cache Ajout Recherche Serveur distant BD Réponse Requête Usager Requête Réponse Ajout Resolver Cache Recherche Requête Réponse Ajout Serveur de noms Cache Recherche BD A. Obaid - Téléinformatique (INF3270) Applications 45 Les clients DNS Un client DNS est appelé Resolver. La fonction gethostbyname() fait appel au resolver Dans Unix, le fichier /etc/resolv.conf contient le nom du domaine local est les adresses des serveurs à utiliser pour ce domaine A. Obaid - Téléinformatique (INF3270) Applications 46 23 23
Le serveur DNS Géré par un processus démon appelé named (ou bind) Se charge de répondre aux requêtes de son domaine Achemine des requêtes à d'autres domaines en contactant des serveurs distants Stocke en mémoire cache les traductions externes effectuées. Il peut les utiliser plus tard. A. Obaid - Téléinformatique (INF3270) Applications 47 Base de données du DNS Contient plusieurs types de ressources : Enregistrements d'association nom-adresse IP (A) Adresses de serveurs (NS) Alias de noms de machines (CNAME) Relais de messagerie électronique (MX) Informations sur les machines (HINFO) Ces données sont stockées sous forme d'enregistrements de ressources (Ressource Records ou RR) A. Obaid - Téléinformatique (INF3270) Applications 48 24 24
Exemple de BD de zone @ N SOA terre.univers.ca. abdel.terre.univers.ca. ( 16 ; numero de serie 86400 ; rafraichissement 3600 ; tentatives : 360000 ; expiration 604800 ; minimum ) IN NS terre.univers.c IN NS ailleurs.univers.c IN MX 10 terre.univers.c IN MX 20 lune.univers.c localhost IN A 172.0.0.1 terre IN A 128.66.12.1 jupiter IN A 128.66.12.4 jup IN CNAME jupiter www IN CNAME saturne news IN CNAME jupiter A. Obaid - Téléinformatique (INF3270) Applications 49 Fonctionnement du serveur Si un serveur ne peut pas effectuer la résolution lui-même, il demande à un serveur racine. Le serveur racine lui fournit l'adresse d'un serveur à contacter pour un domaine donné Un requête peut donc passer par plusieurs étapes (sousrequêtes) de deux manières: itérative: le serveur d'origine fait le suivi récursive: un autre serveur fait le suivi A. Obaid - Téléinformatique (INF3270) Applications 50 25 25
La résolution inverse Consiste à trouver un nom à partir de son adresse IP. Utilisée pour les accès authentifiés à partir de stations (ex. rlogin). On utilise une hiérarchie qui descend du domaine inaddr.arpa A. Obaid - Téléinformatique (INF3270) Applications 51 Les résolutions inverses arpa in-addr 1 132 255 1 208 255 1 132 255 1 189 255 arabica.info.uqam.ca A. Obaid - Téléinformatique (INF3270) Applications 52 26 26
Types de serveur Primaire Serveur responsable de la zone Il a autorité sur la zone Secondaire Relève d'un primaire. Il doit télécharger ses données d'un primaire Cache S'appuie sur les noms de serveurs du domaine racine Il peut y avoir plusieurs serveurs par zone. A. Obaid - Téléinformatique (INF3270) Applications 53 Les BD de la zone Les données de la zone (/etc/named.ca) sont décrites par les RRs: [domaine] [ttl] classe type données domaine: domaine auquel s'applique le RR. ttl: Durée de validité du RR. classe: Type de RR type: Type d'information (NS,SOA,...) A. Obaid - Téléinformatique (INF3270) Applications 54 27 27
Types de RR La ressource SOA (Start Of Authority) définit une nouvelle zone. Elle possède les attributs: origin: nom du domaine contact: e-mail du responsable de la zone serial: numéro de série des données de la zone. refresh: délai de mise à jour pour un serveur secondaire. retry: durée d'attente après un échec d'une requête. expire: Le temps avant abandon. minium: la valeur par défaut des ttls des RRs. A. Obaid - Téléinformatique (INF3270) Applications 55 Types de RR Type peut avoir les valeurs suivantes: A: Adresse IP. NS: Nom du serveur autorisé pour le domaine. MX: Échangeur de courrier électronique. Il peut y en avoir plusieurs (par ordre de précédence). CNAME: Alias d'un nom A. Obaid - Téléinformatique (INF3270) Applications 56 28 28
Exemple de BD de zone @ N SOA terre.univers.ca. abdel.terre.univers.ca. ( 16 ; numéro de série 86400 ; rafraichissement 3600 ; tentatives : 360000 ; expiration 604800 ; minimum ) IN NS terre.univers.c IN NS ailleurs.univers.c IN MX 10 terre.univers.c IN MX 20 lune.univers.c localhost IN A 172.0.0.1 terre IN A 128.66.12.1 jupiter IN A 128.66.12.4 jup IN CNAME jupiter www IN CNAME arabica news IN CNAME jupiter A. Obaid - Téléinformatique (INF3270) Applications 57 Procédure de résolution - Exemple Resolver arabica.info.uqam.ca 1? may.ny.unicom.com 12 128.204.1.14 Cache 12 11 NS de info.uqam.ca 3? may.ny.unicom.com! NS de com? may.ny.unicom.com! NS de unicom.com? may.ny.unicom.com! NS de ny.unicom.com? may.ny.unicom.com 128.204.1.14 NS de. (root) NS de com NS de unicom.com NS de ny.unicom.com A. Obaid - Téléinformatique (INF3270) Applications 58 29 29
La commande nslookup Permet d'interroger le DNS. $ nslookup Default Server: cumin.telecom.uqam.ca Address: 132.208.16.240 $ nslookup arabica.info.uqam.ca Server: cumin.telecom.uqam.c Address: 132.208.16.240 > set type=mx > enst.fr Server: ns3.uqam.ca Address: 132.208.16.240 Non-authoritative answer: Name: arabica.info.uqam.ca enst.fr preference = 10, mail exchanger = smtp2.enst.fr Address: 132.208.132.189 enst.fr preference = 20, mail exchanger = infres.enst.fr Authoritative answers can be found from: enst.fr nameserver = enst.enst.fr enst.fr nameserver = phoenix.uneec.eurocontrol.fr smtp2.enst.fr internet address = 137.194.2.14 infres.enst.fr internet address = 137.194.160.3 herculanum.int-evry.fr internet address = 157.159.11.15 A. Obaid - Téléinformatique (INF3270) Applications 59 Le protocole HTTP HTTP (Hyper Text Transfer Protocol) est un protocole de transfert de données hypermédia sur Internet. Le World-Wide Web (WWW) fait référence à un réseau de serveurs qui communiquent par HTTP. HTTP utilise le modèle client-serveur sur TCP sur le port 80 A. Obaid - Téléinformatique (INF3270) Applications 60 30 30
Le web Client Page courante affichée Serveur: www.xyx.edu Serveur: uvt.enst.fr xxxx xxxx Hyperlien xxxx xxxx Hyperlien xxxx xxxx HTTP sur TCP HTTP sur TCP Internet A. Obaid - Téléinformatique (INF3270) Applications 61 Avantages de HTTP Permet la négociation des types de données. Permet de servir des documents de plusieurs types: texte (HTML,XML, ), image (JPEG, GIF, ), combiné (multimédia), Extensible avec l'emploi d'en-têtes. Sans état (stateless). Donc léger. Ses requêtes et réponses sont en ASCII. Sécuritaire avec SSL. N'est (généralement) pas filtré par les fire-walls. A. Obaid - Téléinformatique (INF3270) Applications 62 31 31
Échanges HTTP Les étapes d une requête sont: Le client effectue une connexion TCP sur le port 80. Le client émet la requête. Le serveur envoie le document de réponse. Le serveur coupe la connexion. Certains serveurs permettent de garder la connexion ouverte pour plusieurs requêtes (Option Keep alive ) A. Obaid - Téléinformatique (INF3270) Applications 63 Requêtes HTTP Un requête consiste en: Une ligne de commande contenant le nom de la commande (GET, POST, HEAD, ), l'url demandé et la version de HTTP utilisée. Exemple: GET /document.html HTTP/1.1 Des lignes d'en-têtes (optionnelles) Une ligne vide Le corps de la requête (optionnel) Commande (GET,.) En-têtes Ligne vide Corps A. Obaid - Téléinformatique (INF3270) Applications 64 32 32
Réponses HTTP La réponse de HTTP consiste en: Une ligne de code de la réponse contenant la version de HTTP utilisée, un code et un texte explicatif Exemple: HTTP/1.0 200 OK Des lignes d'en-têtes Une ligne vide Le corps de la réponse qui être: Un document de type texte. Image, combiné Status (200 OK,.) En-têtes Ligne vide Corps de la réponse A. Obaid - Téléinformatique (INF3270) Applications 65 Les URL Un URL (Uniform Resource Locator) est un mécanisme d'identification des ressources sur le Web: service://nomdedomaine:[port]/ressource La ressource peut être: Un document (texte, image, ) Un exécutable (binaire, Perl, Python, ) Un objet (servlet, bean,.) Le service peut être: HTTP, FTP, TELNET, SMTP, A. Obaid - Téléinformatique (INF3270) Applications 66 33 33
Les commandes des requêtes GET: demande de lecture d'une ressource. Peut communiquer des données dans l'url de la requête. POST: demande de lecture d'une ressource. Peut communiquer un grand volume de données au serveur. Ces données sont contenues dans le corps de la requête. HEAD: demande de lecture des en-têtes d'une ressource. PUT: demande d écriture d'une ressource. DELETE: demande de destruction d'une ressource. A. Obaid - Téléinformatique (INF3270) Applications 67 Les codes des réponses Information : 100 Continue : Le serveur accepte de traiter la requête et le client doit continuer. 101 Changement de protocole : Le serveur doit continuer avec une autre version de HTTP. Redirection: Succès : 301 Moved Permanently : La ressource a été relocalisée. 307 Temporary Redirect : La ressource a été relocalisée temporairement. 200 OK : La requête a bien été exécutée. 201 Créée : La ressource demandée a été créée. 202 Accepté : Traitement demandé en cours d exécution. 204 Aucun contenu : Aucun contenu n'est retourné. A. Obaid - Téléinformatique (INF3270) Applications 68 34 34
Les codes des réponses Erreur Client 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 407 Proxy Authentication Required 408" Request Time-out A. Obaid - Téléinformatique (INF3270) Applications 69 Exemples de requêtes GET http://www.info.uqam.ca/programmation/tcpip.html HTTP/1.1 <Ligne Vide> URL relatif GET Programmation/tcpip.html HTTP/1.1 <Ligne Vide> GET Programmation/traitement?Par1&Par2 HTTP/1.1 <Ligne Vide> POST Programmation/traitement HTTP/1.1 <Ligne Vide> Données A. Obaid - Téléinformatique (INF3270) Applications 70 35 35
Les en-têtes Ils accompagnent les requêtes et les réponses. Enrichissent les échanges HTTP Permettent de négocier certains paramètres de la communication. A. Obaid - Téléinformatique (INF3270) Applications 71 Les en-têtes Accept: Le client indique les types de documents qu il accepte. Accept-Charset: Le client précise les jeux de caractères qu il accepte (ISO-8859-1, ). If-Modified-Since: Utilisé par le client pour obtenir un document s il a été récemment modifié. Utilisé par l'opération Reload. Connection: Permet de spécifier certains paramètres de connexion (ex. Keep-Alive). A. Obaid - Téléinformatique (INF3270) Applications 72 36 36
Les en-têtes Host : Adresse du serveur. Cookie : Permet au client de présenter une cookie. Referer : URL de la page origine de la requête. User-Agent : Informations sur le navigateur. Content-Length : La longueur en octets des données de la réponse. Content-Type : Type (MIME) du contenu de la réponse. Expires: Date de validité d un document. Utilisé pour la gestion des mémoires cache. Set-Cookie : Permet au serveur de fournir un cookie au client. A. Obaid - Téléinformatique (INF3270) Applications 73 Page : Exemples d'échanges HTTP <a HREF="http://www.info.uqam.ca/Test/texte.html"> Obtenir le texte </a> Réponse GET Test/texte.html HTTP/1.1 Accept: text/plain, image/* If-Modified-Since: Wed, 10 Sep 2003 14:20:21 GMT Referer: http://www.info.uqa.ca/index.html User-Agent: Mozilla/2.0 Ligne vide Requête HEAD Test/texte.html HTTP/1.0 User-Agent: Mozilla/2.0 From: obaid.abdel@uqam.ca Ligne blanche Requête HTTP/1.0 200 OK Date: Wed, 10 Sep 2003 14:20:21 GMT Server: NCSA/1.5.2 Mime-Vesion: 1.0 Content-Type: text/html Last-Modified: Wed, 10 Sep 1998 14:20:23 GMT Content-Length: 139 Ligne vide <html> </html> Réponse HTTP/1.0 200 OK Date: Wed, 10 Sep 2003 14:20:21 GMT Server: NCSA/1.5.2 Mime-Vesion: 1.0 Content-Type: text/html Last-Modified: Wed, 10 Sep 1998 14:20:23 GMT A. Obaid - Téléinformatique (INF3270) Applications 74 37 37
Requêtes avec paramètres Méthode GET : http://www.info.uqam.ca/cgi/recherche?item1+item2+item3 GET cgi/recherche?item1+item2+item3 HTTP/1.0 Accept: */* Accept-language: en, fc User-Agent: Mozilla/2.0 Host: saturne.info.uqam.ca Ligne blanche Méthode GET à partir d'un formulaire : http://www.info.uqam.ca/cgi/saisie?champ1=val1&champ2=val2 GET /cgi/saisie?champ1=val1&champ2=val2 Accept: */* Accept-language: en, fc User-Agent: Mozilla/2.0 Host: saturne.info.uqam.ca Ligne blanche Méthode GET à partir d'un formulaire : POST / HTTP/1.1 content-type:application/x-www-form-urlencoded;charset=utf-8 host: http://www.info.uqam.ca content-length:207 Prenom=Alain&Nom=Lapointe&Age=23 A. Obaid - Téléinformatique (INF3270) Applications 75 Utilisation des formulaires Les formulaires sont définis avec la balise: <FORM NAME="nom" ACTION="URL" METHOD="Méthode">... </FORM> URL désigne le programme qui va traiter les données du formulaire. Méthode est GET (défault) ou POST. Les données du formulaire sont traitées par une ressource externe au serveur (ex. CGI, Servlet) A. Obaid - Téléinformatique (INF3270) Applications 76 38 38