La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

La couche Applicatiopn

Présentations similaires


Présentation au sujet: "La couche Applicatiopn"— Transcription de la présentation:

1 La couche Applicatiopn

2 Applications sur Internet
10. SERVICES DE TÉLÉMATIQUE 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

3 Les numéros de port Les numéros de port sont sur 16 bits
Intervalles de valeurs: 0 – 65535 : numéros standard (well-known): 20 FTP (Données) 21 FTP (Contrôle) 22 SSH 23 Telnet 25 Simple Mail Transfer Protocol : 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.

4 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.

5 Modèle FTP

6 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.

7 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

8 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: 4x = 1174

9 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.

10 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 ( ,1645) (0 bytes). total 26 -rw-rw-r Apr :09 README -rw-rw-r Apr :11 README.FTP drwxrwxr-x Mar humor-folder ..... drwxrwxr-x Aug simulator-folder drwxrwxr-x Jun :57 texas-flyers drwxrwxr-x Oct :90 weather-services folder 226 ASCII Transfer complete. 1832 bytes received in 2.7 seconds (0.65 Kbytes/s) ....

11 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 ( , 3369). total 1855 -rwxr-xr-x 1 obaid prof Oct cshrc -rwxr-xr-x 1 obaid prof Oct login ... drwxr-xr-x 2 obaid prof Mar 10 17:37 PS drwxr-xr-x 2 obaid prof Mar 9 10:50 Papiers 226 Transfer complete.

12 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 ( ,3785). total 1855 -rwxr-xr-x 1 obaid prof Oct cshrc -rwxr-xr-x 1 obaid prof Oct login 226 Transfer complete.

13 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 ( ,3788). .login SNMP ... 226 Transfer complete. ftp> binary ---> TYPE I 200 Type set to I.

14 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

15 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é.

16 Modèle de messagerie Le protocole SMTP (Simple Mail Transfer Protocol) permet d'envoyer des messages d'un usager à un autre usager via la boite postale (mailbox) de l'usager receveur. Le processus SMTP qui intéragisse avec l'usager envoyeur est appelé SMTP-Envoyeur (SMTP-sender). Le processus SMTP qui interagisse avec le l'usager destination est appelé SMTP-Destination. Comme les messages doivent être relayer de machine à machine, un processus de relais sera utilisé; on l'appellera SMTP-Serveur. SMT est le mécanisme qui permet de transporter les messages entre les processus Envoyeur, Serveurs et Destination. Il ne définie pas l'interface entre les processus et les usagers.

17 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,…

18 Commandes SMTP HELO : MAIL FROM: RCPT TO: DATA: Autres …
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 …

19 Session SMTP - Exemple # telnet zeta.labunix.uqam.ca 25
Trying Connected to zeta.labunix.uqam.ca. Escape character is '^]'. 220 zeta.labunix.uqam.ca ESMTP Sendmail Sun/8.13.8; Fri, 7 Dec :25: (EST) HELO zeta.labunix.uqam.ca 250 zeta.labunix.uqam.ca Hello zeta.labunix.uqam.ca [ ], pleased to meet you MAIL FROM: Sender ok RCPT TO: Recipient ok DATA 354 Enter mail, end with "." on a line by itself Bonjour Abdel Comment ca va ? . quit DATA

20 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.

21 Exemple de message Microsoft Mail Internet Headers Version 2.0
Received: from anis.telecom.uqam.ca ([ ]) by brooks.dinfo.uqam.ca .. Fri, 27 Jun :06: Received: from anis.telecom.uqam.ca (anis.telecom.uqam.ca [ ]) by sortant.uqam.ca (8.13.8/8.12.1) with SMTP id m5R95qVf004596; Fri, 27 Jun :05: (EDT) Received: from antivirus.uqam.ca ([ ]) by anis.telecom.uqam.ca (SAVSMTP ) with SMTP id M ; Fri, 27 Jun :05: Received: from brooks.dinfo.uqam.ca ([ ]) by intrant.uqam.ca (8.13.8/8.12.2/uqam-filtres) .. Fri, 27 Jun :05: (EDT) MIME-Version: 1.0 Content-Type: text/plain; charset="iso " Content-Transfer-Encoding: quoted-printable Date: Fri, 27 Jun :04: Message-ID: From: "Abdellatif Obaid" To: "Teodor Stefan Onea" Cc: Return-Path: Bonjour Je donne une extension d'une semaine pour la remise du TP 2 ….

22 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.

23 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.

24 Session POP - Exemple telnet arabica.info.uqam.ca 110
Trying 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 list +OK Mailbox scan listing follows 1 494 retr 1 +OK 494 octets Received: by saturne.info.uqam.ca; id AA07595; Fri, 7 Mar :07: .

25 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.

26 Terminal virtuel Développé afin de résoudre le problème d'inter-fonctionnement entre les terminaux et les ordinateurs dans un environnement hétérogène.

27 Environnement Telnet

28 Fonctionnement de NVT NVT est un ensemble de: Commandes/réponses:
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

29 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 Ce sont les procédures qui doivent être activées ou désactivées dans l'environnement local et dans l'environnement à distance ainsi que les applications à activer. Ce sont les procédures du système client et du système serveur. Les fonctions NVT sont réalisées en envoyant le caractère spécifique de la fonction délimité par des entêtes (IAC).

30 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 EL (Erase line) Efface une ligne BRK (break) Arrêt IP (Interupt process) Interruption de processus 244 AO (Abord output) Arrête l'output AYT (are you there) Êtes-vous là GA (Go ahead) Allez y DM (Data Mark) Signal de synchro NOP (No Opération) Pas d'opération SB/SE Débuter/arrêter sous options 250/240

31 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

32 Négociation des options (2)
WILL Émetteur veut activer une option DO Récepteur dit OK DONT Récepteur dit NON DO Émetteur veut que le récepteur active une option WILL Récepteur dit OK WONT Récepteur dit NON WONT Émetteur veut désactiver une option DONT Récepteur dit OK DONT Émetteur veut que le récepteur désactive une option

33 Négociation - Exemples
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

34 Session Telnet - Exemple
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 Négociation de variables d’env. SEND wont 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: *******

35 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

36 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)

37 Architecture du DNS Client Serveur DNS Serveur DNS Serveur DNS
Secondaires Client Serveur DNS Serveur DNS Resolver Secondaire Serveur DNS Primaire Serveur DNS Serveur DNS Primaire BD du DNS Secondaire Serveur DNS Zone Zone Zone

38 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 Chaque étiquette correspond à un domaine dans une hiérarchie de noms.

39 Hiérarchie de noms . edu com net … ca uk uqam udem ... mcgill info
Nom de domaine: arabica.info.uqam.ca info arabica

40 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 !

41 Les serveurs racine Il existe plusieurs serveurs du domaine root:
l.root-servers.net m.root-servers.net a.root-servers.net b.root-servers.net c.root-servers.net d.root-servers.net e.root-servers.net f.root-servers.net g.root-servers.net h.root-servers.net i.root-servers.net j.root-servers.net k.root-servers.net

42 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

43 Les zones et leurs serveurs
. Serveur . (racine) edu com net ca Serveur ca Zone ca Sous-zone uqam uqam udem Serveur uqam.ca Sous-zone info info iro Serveur info.uqam.ca

44 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.

45 Modèle du DNS BD BD Cache Ajout Recherche Serveur distant Réponse
Requête Requête Requête BD Serveur de noms Usager Resolver Réponse Réponse Ajout Recherche Ajout Recherche Cache Cache

46 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

47 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.

48 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)

49 Exemple de BD de zone @ N SOA terre.univers.ca. abdel.terre.univers.ca. ( 16 ; numero de serie ; rafraichissement 3600 ; tentatives : ; expiration ; 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 terre IN A jupiter IN A jup IN CNAME jupiter www IN CNAME saturne news IN CNAME jupiter

50 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 (sous-requêtes) de deux manières: itérative: le serveur d'origine fait le suivi récursive: un autre serveur fait le suivi

51 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 in-addr.arpa

52 Les résolutions inverses
arpa in-addr 1 132 255 1 208 255 1 132 255 1 189 255 arabica.info.uqam.ca

53 Types de serveur Primaire Secondaire Cache
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.

54 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, ...)

55 Types de RR La ressource SOA (Start Of Authority) définit une nouvelle zone . Elle possède les attributs: origin: nom du domaine contact: 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.

56 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

57 Exemple de BD de zone @ N SOA terre.univers.ca. abdel.terre.univers.ca. ( 16 ; numéro de série ; rafraichissement 3600 ; tentatives : ; expiration ; 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 terre IN A jupiter IN A jup IN CNAME jupiter www IN CNAME arabica news IN CNAME jupiter

58 Procédure de résolution -Exemple
3 ? may.ny.unicom.com NS de . (root) ! NS de com ? may.ny.unicom.com NS de com 1 ? may.ny.unicom.com ! NS de unicom.com Resolver 12 ? may.ny.unicom.com NS de unicom.com 11 ! NS de ny.unicom.com arabica.info.uqam.ca ? may.ny.unicom.com 12 NS de ny.unicom.com Cache NS de info.uqam.ca

59 La commande nslookup Permet d'interroger le DNS.
Default Server: cumin.telecom.uqam.ca Address: > set type=MX > enst.fr Server: ns3.uqam.ca Non-authoritative answer: enst.fr preference = 10, mail exchanger = smtp2.enst.fr 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 = infres.enst.fr internet address = herculanum.int-evry.fr internet address = $ nslookup arabica.info.uqam.ca Server: cumin.telecom.uqam.c Address: Name: arabica.info.uqam.ca Address:

60 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

61 Le web Page courante affichée Client xxxx Hyperlien xxxx xxxx
Serveur: uvt.enst.fr Serveur: Client xxxx Hyperlien xxxx xxxx Hyperlien HTTP sur TCP HTTP sur TCP Internet

62 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.

63 É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 )

64 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

65 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/ 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

66 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, …

67 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.

68 Les codes des réponses Information : Redirection: Succès :
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: 301 Moved Permanently : La ressource a été relocalisée. 307 Temporary Redirect : La ressource a été relocalisée temporairement. Succès : 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é.

69 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

70 Exemples de requêtes URL relatif
GET 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 …

71 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.

72 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 ,…). 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).

73 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.  

74 Exemples d'échanges HTTP
Page : <a HREF=" Obtenir le texte </a> Réponse GET Test/texte.html HTTP/1.1 Accept: text/plain , image/* If-Modified-Since: Wed, 10 Sep :20:21 GMT Referer: User-Agent: Mozilla/2.0 Ligne vide HTTP/ OK Date: Wed, 10 Sep :20:21 GMT Server: NCSA/1.5.2 Mime-Vesion: 1.0 Content-Type: text/html Last-Modified: Wed, 10 Sep :20:23 GMT Content-Length: 139 Ligne vide <html> ……</html> Requête Réponse HEAD Test/texte.html HTTP/1.0 User-Agent: Mozilla/2.0 From: Ligne blanche HTTP/ OK Date: Wed, 10 Sep :20:21 GMT Server: NCSA/1.5.2 Mime-Vesion: 1.0 Content-Type: text/html Last-Modified: Wed, 10 Sep :20:23 GMT Requête

75 Requêtes avec paramètres
Méthode GET : 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 : 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: content-length:207 Prenom=Alain&Nom=Lapointe&Age=23

76 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)

77 Modèle avec CGI Navigateur HTTPD CGI stdin/stdout Programme/ Script
QUERY_STRING CONTENT_TYPE REMOTE_ADDR ... Variables d ’environnment Navigateur HTTPD Programme/ Script CGI stdin/stdout

78 Fonctionnement du CGI Serveur Browser Submit Post Programme Page HTML
Write environnement Execute Programme Read environnement Standart Input Standart output Page HTML

79 Les cookies HTTP est sans état (stateless).
Les cookies permettent au serveur de garder des informations d'état auprès du client. Une cookie se présente sous forme d'une variable ayant un contenu. L'échange des cookies se fait au moyen d'échange d'en-têtes.

80 Utilisation des cookies
Le serveur soumet une cookie au client. Celui-ci la stocke et la redonne dans sa prochaine requête. Le client stocke ses cookies dans un fichier spécifique selon un format spécifique Le serveur soumet une cookie avec l'en-tête Set-cookie. Le client retourne la cookie avec l'en-tête Cookie.

81 Échange des types MIME MIME (Multipurpose Internet Mail Extension) est un standard de données de divers types (textes, images, vidéo, …). HTTP Permet de spécifier les types de MIME à échanger. Il utilise l'en-tête Content-type dans une réponse HTTP.


Télécharger ppt "La couche Applicatiopn"

Présentations similaires


Annonces Google