81
Obaid © - Téléinformatique (INF3270) Applications 1 La couche Applicatiopn Liaison de données Physique R éseau Transport Application Liaison de données Physique R éseau Liaison de données Physique R éseau Liaison de données Physique R éseau Transport Application Protocole de l’application

La couche Applicatiopn

  • Upload
    gary

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

La couche Applicatiopn. 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,… - PowerPoint PPT Presentation

Citation preview

Page 1: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 1

La couche Applicatiopn

Liaison de données

Physique

Réseau

Transport

Application

Liaison de données

Physique

Réseau

Liaison de données

Physique

Réseau

Liaison de données

Physique

Réseau

Transport

ApplicationProtocole de l’application

Page 2: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 2

10. SERVICES DE TÉLÉMATIQUEApplications sur 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

Page 3: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 3

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.

Page 4: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 4

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.

FTP

Page 5: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 5

Modèle FTP

Interface Usager

Protocolede contrôle

Protocolede données

Système de fichiers

Protocolede contrôle

Client

Protocolede données

Client

Usager

Système de fichiers

Client FTP Serveur FTP

Page 6: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Client FTP

ServeurFTP

Contrôle

Données

21

20

Page 7: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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

Page 8: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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: 4x256+150= 1174

PORT 140,252,13,34,4,150

Client FTP

1173

Serveur FTP

21Connexion Contrôle

Client FTP

1173

Serveur FTP

21Connexion Contrôle

SYN , Port Source: 11741174 20

Connexion Data

IP: 140.252.13.34

IP: 140.252.13.34

Page 9: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Page 10: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 10

Session FTP - Exemple

#ftp rascal.ics.utexas.eduConnected to rascal.ics.utexas.edu.220 rascal FTP server (SunOS 4.1) ready.Name (rascal.ics.utexas.edu:obaid): anonymous331 Guest login ok, send ident as password.Password:230 Guest login ok, access restrictions apply.ftp> cd /misc/av250 CWD command successful.ftp> dir200 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-folderdrwxrwxr-x 2 19 120 512 Jun 4 17:57 texas-flyersdrwxrwxr-x 2 67 120 512 Oct 12 19:90 weather-services folder226 ASCII Transfer complete.1832 bytes received in 2.7 seconds (0.65 Kbytes/s)....

#ftp rascal.ics.utexas.eduConnected to rascal.ics.utexas.edu.220 rascal FTP server (SunOS 4.1) ready.Name (rascal.ics.utexas.edu:obaid): anonymous331 Guest login ok, send ident as password.Password:230 Guest login ok, access restrictions apply.ftp> cd /misc/av250 CWD command successful.ftp> dir200 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-folderdrwxrwxr-x 2 19 120 512 Jun 4 17:57 texas-flyersdrwxrwxr-x 2 67 120 512 Oct 12 19:90 weather-services folder226 ASCII Transfer complete.1832 bytes received in 2.7 seconds (0.65 Kbytes/s)....

Page 11: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 11

#ftp> open saturne.info.uqam.caConnected to saturne.info.uqam.ca.220 saturne FTP server (OSF/1 Version 5.60) ready.Name (saturne.info.uqam.ca:p32224): obaid331 Password required for obaid.Password: xxxxxxxx230 User obaid logged in.ftp> dir200 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 PSdrwxr-xr-x 2 obaid prof 512 Mar 9 10:50 Papiers...226 Transfer complete.

#ftp> open saturne.info.uqam.caConnected to saturne.info.uqam.ca.220 saturne FTP server (OSF/1 Version 5.60) ready.Name (saturne.info.uqam.ca:p32224): obaid331 Password required for obaid.Password: xxxxxxxx230 User obaid logged in.ftp> dir200 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 PSdrwxr-xr-x 2 obaid prof 512 Mar 9 10:50 Papiers...226 Transfer complete.

Session FTP - Exemple

Page 12: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 12

#ftp -d saturne.info.uqam.caConnected to saturne.info.uqam.ca.220 saturne FTP server (OSF/1 Version 5.60) ready.Name (saturne.info.uqam.ca:p32224): obaid---> USER obaid331 Password required for obaid.Password: xxxxxxx---> PASS ???????230 User obaid logged in.ftp> dir---> PORT 132,208,26,13,14,201200 PORT command successful.---> LIST150 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.

#ftp -d saturne.info.uqam.caConnected to saturne.info.uqam.ca.220 saturne FTP server (OSF/1 Version 5.60) ready.Name (saturne.info.uqam.ca:p32224): obaid---> USER obaid331 Password required for obaid.Password: xxxxxxx---> PASS ???????230 User obaid logged in.ftp> dir---> PORT 132,208,26,13,14,201200 PORT command successful.---> LIST150 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.

Session FTP - Exemple

Page 13: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 13

ftp> ls---> PORT 132,208,26,13,14,204200 PORT command successful.---> NLST150 Opening ASCII mode data connection for file list (132.208.26.13,3788)..loginSNMP...226 Transfer complete.ftp> binary---> TYPE I200 Type set to I.

ftp> ls---> PORT 132,208,26,13,14,204200 PORT command successful.---> NLST150 Opening ASCII mode data connection for file list (132.208.26.13,3788)..loginSNMP...226 Transfer complete.ftp> binary---> TYPE I200 Type set to I.

Session FTP - Exemple

Page 14: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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

Page 15: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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é.

MTA MTA MTA

UA UA Système de fichiers

SMTP SMTP

POP

Page 16: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 16

Modèle de messagerie

Logiciel Courriel

Système d’exploitation

Serveur SMTP

Client SMTP

TCP

Internet

Spoolmail

Logiciel Courriel

Système d’exploitation

Client SMTP

Serveur SMTP

TCP

Spoolmail

Page 17: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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,…

Page 18: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 18

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 …

Page 19: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 19

Session SMTP - Exemple

# telnet zeta.labunix.uqam.ca 25Trying 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.ca250 zeta.labunix.uqam.ca Hello zeta.labunix.uqam.ca [132.208.132.48], pleased to meet youMAIL FROM: [email protected] 2.1.0 [email protected]... Sender okRCPT TO: [email protected]^250 2.1.5 [email protected]... Recipient okDATA354 Enter mail, end with "." on a line by itselfBonjour AbdelComment ca va ?.quit

# telnet zeta.labunix.uqam.ca 25Trying 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.ca250 zeta.labunix.uqam.ca Hello zeta.labunix.uqam.ca [132.208.132.48], pleased to meet youMAIL FROM: [email protected] 2.1.0 [email protected]... Sender okRCPT TO: [email protected]^250 2.1.5 [email protected]... Recipient okDATA354 Enter mail, end with "." on a line by itselfBonjour AbdelComment ca va ?.quit

Page 20: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Page 21: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 21

Exemple de messageMicrosoft Mail Internet Headers Version 2.0Received: from anis.telecom.uqam.ca ([132.208.250.6]) by brooks.dinfo.uqam.ca ..

Fri, 27 Jun 2008 05:06:50 -0400Received: 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 -0400Received: 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.0Content-Type: text/plain; charset="iso-8859-1"Content-Transfer-Encoding: quoted-printableDate: Fri, 27 Jun 2008 05:04:18 -0400Message-ID: <[email protected]>From: "Abdellatif Obaid" <[email protected]>To: "Teodor Stefan Onea" <[email protected]>, <[email protected]>Cc: <[email protected]>Return-Path: [email protected] donne une extension d'une semaine pour la remise du TP 2….

Microsoft Mail Internet Headers Version 2.0Received: from anis.telecom.uqam.ca ([132.208.250.6]) by brooks.dinfo.uqam.ca ..

Fri, 27 Jun 2008 05:06:50 -0400Received: 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 -0400Received: 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.0Content-Type: text/plain; charset="iso-8859-1"Content-Transfer-Encoding: quoted-printableDate: Fri, 27 Jun 2008 05:04:18 -0400Message-ID: <[email protected]>From: "Abdellatif Obaid" <[email protected]>To: "Teodor Stefan Onea" <[email protected]>, <[email protected]>Cc: <[email protected]>Return-Path: [email protected] donne une extension d'une semaine pour la remise du TP 2….

Page 22: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Boîte courriel

Serveur POP

Autentifcation

API accès courriel

UA

Requête POP

Réponse POP

Serveur SMTP

Message

Page 23: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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. …

Page 24: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 24

Session POP - Exemple

telnet arabica.info.uqam.ca 110Trying 132.208.132.189...Connected to arabica.info.uqam.ca.Escape character is '^]'.+OK POP3 arabica.info.uqam.ca v7.59 server readyuser obaid+OK User name accepted, password pleasepass **********+OK Mailbox open, 453 messagesstat+OK 453 3732870list+OK Mailbox scan listing follows1 494…retr 1+OK 494 octetsReceived: by saturne.info.uqam.ca; id AA07595; Fri, 7 Mar 1997 05:07:16 -0500….

telnet arabica.info.uqam.ca 110Trying 132.208.132.189...Connected to arabica.info.uqam.ca.Escape character is '^]'.+OK POP3 arabica.info.uqam.ca v7.59 server readyuser obaid+OK User name accepted, password pleasepass **********+OK Mailbox open, 453 messagesstat+OK 453 3732870list+OK Mailbox scan listing follows1 494…retr 1+OK 494 octetsReceived: by saturne.info.uqam.ca; id AA07595; Fri, 7 Mar 1997 05:07:16 -0500….

Page 25: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Page 26: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Terminal virtuel

Terminal virtuel

Dialogue NVT

ClientServeur

Correspondance Terminal - NVT

Correspondance Ordinateur - NVT

Page 27: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 27

Environnement Telnet

Commande d’usager

Système d’exploitation

Serveur SMTP

Client Telnet

TCP

Application système

Système d’exploitation

Serveur Telnet

TCP

Internet

Ordinateur distantTerminal distant

Page 28: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 28

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

IAC (255)Code de la commande

Options de négociation

1 octet 1 1

Page 29: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 29

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

Commandes et réponses

Page 30: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 30

Abréviation Description Code IAC Début d'une commande 255WILL/WONT/DO/DONT Option de négociation 251/../254EC (Erase Caracter) Efface un caractère 247EL (Erase line) Efface une ligne 248BRK (break) Arrêt 243IP (Interupt process) Interruption de processus 244AO (Abord output) Arrête l'output 245AYT (are you there) Êtes-vous là 246GA (Go ahead) Allez y 249DM (Data Mark) Signal de synchro 242NOP (No Opération) Pas d'opération 241SB/SE Débuter/arrêter sous options 250/240

Commandes Telnet

Page 31: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 31

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

Les options Telnet

Page 32: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 32

WILL Émetteur veut activer une optionDO Récepteur dit OK

WILL Émetteur veut activer une optionDONT Récepteur dit NON

DO Émetteur veut que le récepteur active une optionWILL Récepteur dit OK

DO Émetteur veut que le récepteur active une optionWONT Récepteur dit NON

WONT Émetteur veut désactiver une optionDONT Récepteur dit OK

DONT Émetteur veut que le récepteur désactive une optionWONT Récepteur dit NON

Négociation des options (2)

Page 33: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 33

IAC DONT ECHO

Serveur Client

IAC WONT ECHO

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

IAC WILL 24

Client

IAC DO 24

Serveur

IAC SB 24 1 IAC SE

IAC SB 24 0 VT100 IAC SE

Page 34: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 34

% telnettelnet> toggle optionsWill show option processing.telnet> open saturne.info.uqam.caTrying...Connected to arabica.info.uqam.ca.Escape character is '^]'.SEND do ECHOSEND do SUPPRESS GO AHEAD Négociation du mode caractèreSEND will TERMINAL TYPE Envoi du type de terminalSEND will NEGOTIATE WINDOW SIZE Négociation de la taille de la fenêtreRCVD do TERMINAL TYPE Envoi du type de terminalRCVD do 32 Négociation de vitesseSEND wont 32 Refus de la négociation de vitesseRCVD do 36 Négociation de variables d’env.SEND wont 36 Refus de négociation ...RCVD will ECHO Le serveur fera l'échoRCVD will SUPPRESS GO AHEAD Le serveur accepte le modeRCVD do NEGOTIATE WINDOW SIZE Négocier la taille de la fenêtreSEND suboption TELOPT_NAWS Width 0, Height 0 Donner les sous optionsRCVD suboption TELOPT_TTYPE SEND Demande au client son terminalSEND suboption TELOPT_TTYPE vt100 Envoi du type de terminalRCVD will STATUS SEND dont STATUS

OSF/1 (saturne) (ttyp1)login: obaidpassword: *******

% telnettelnet> toggle optionsWill show option processing.telnet> open saturne.info.uqam.caTrying...Connected to arabica.info.uqam.ca.Escape character is '^]'.SEND do ECHOSEND do SUPPRESS GO AHEAD Négociation du mode caractèreSEND will TERMINAL TYPE Envoi du type de terminalSEND will NEGOTIATE WINDOW SIZE Négociation de la taille de la fenêtreRCVD do TERMINAL TYPE Envoi du type de terminalRCVD do 32 Négociation de vitesseSEND wont 32 Refus de la négociation de vitesseRCVD do 36 Négociation de variables d’env.SEND wont 36 Refus de négociation ...RCVD will ECHO Le serveur fera l'échoRCVD will SUPPRESS GO AHEAD Le serveur accepte le modeRCVD do NEGOTIATE WINDOW SIZE Négocier la taille de la fenêtreSEND suboption TELOPT_NAWS Width 0, Height 0 Donner les sous optionsRCVD suboption TELOPT_TTYPE SEND Demande au client son terminalSEND suboption TELOPT_TTYPE vt100 Envoi du type de terminalRCVD will STATUS SEND dont STATUS

OSF/1 (saturne) (ttyp1)login: obaidpassword: *******

Session Telnet - Exemple

Page 35: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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

Page 36: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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)

Page 37: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 37

Architecture du DNS

Serveur DNSServeur DNS

Serveur DNSServeur

DNS

Serveur DNSServeur DNS

ClientClient

Serveur DNS

BD du DNS

Secondaires

Primaire

Resolver

Primaire

Serveur DNSServeur DNS

Secondaire

ZoneZone

Zone

Secondaire

Page 38: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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– www.google.com

Chaque étiquette correspond à un domaine dans une hiérarchie de noms.

Page 39: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 39

Hiérarchie de noms

...

.

net

uqam

info

udem

cacomedu

mcgill

uk

arabica

Nom de domaine: arabica.info.uqam.ca

Page 40: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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 !

Page 41: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 41

Les serveurs racine

Il existe plusieurs serveurs du domaine root:

l.root-servers.net 198.32.64.12m.root-servers.net 202.12.27.33a.root-servers.net 198.41.0.4b.root-servers.net 128.9.0.107c.root-servers.net 192.33.4.12d.root-servers.net 128.8.10.90e.root-servers.net 192.203.230.10f.root-servers.net 192.5.5.241g.root-servers.net 192.112.36.4h.root-servers.net 128.63.2.53i.root-servers.net 192.36.148.17j.root-servers.net 192.58.128.30k.root-servers.net 193.0.14.129

l.root-servers.net 198.32.64.12m.root-servers.net 202.12.27.33a.root-servers.net 198.41.0.4b.root-servers.net 128.9.0.107c.root-servers.net 192.33.4.12d.root-servers.net 128.8.10.90e.root-servers.net 192.203.230.10f.root-servers.net 192.5.5.241g.root-servers.net 192.112.36.4h.root-servers.net 128.63.2.53i.root-servers.net 192.36.148.17j.root-servers.net 192.58.128.30k.root-servers.net 193.0.14.129

Page 42: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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

Page 43: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 43

Les zones et leurs serveurs

.

net

uqam

info

udem

cacomedu

iro

Sous-zone uqam

Sous-zone info

ServeurServeur

uqam.ca

info.uqam.ca

ca

. (racine)

Zone ca

ServeurServeur

ServeurServeur

ServeurServeur

Page 44: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Page 45: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 45

Modèle du DNS

Serveur distant

Serveur de noms

RequêteRéponse

Cache

Cache

Resolver

Cache

Réponse

Requête

Usager

Réponse

Requête

Ajout RechercheRechercheAjout

BD

BD

Ajout Recherche

Page 46: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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

Page 47: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Page 48: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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)

Page 49: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 49

Exemple de BD de zone

@ N SOA terre.univers.ca. abdel.terre.univers.ca. (16 ; numero de serie86400 ; rafraichissement3600 ; tentatives :360000 ; expiration604800 ; minimum )IN NS terre.univers.cIN NS ailleurs.univers.cIN MX 10 terre.univers.cIN MX 20 lune.univers.c

localhost IN A 172.0.0.1terre IN A 128.66.12.1jupiter IN A 128.66.12.4 jup IN CNAME jupiterwww IN CNAME saturnenews IN CNAME jupiter

@ N SOA terre.univers.ca. abdel.terre.univers.ca. (16 ; numero de serie86400 ; rafraichissement3600 ; tentatives :360000 ; expiration604800 ; minimum )IN NS terre.univers.cIN NS ailleurs.univers.cIN MX 10 terre.univers.cIN MX 20 lune.univers.c

localhost IN A 172.0.0.1terre IN A 128.66.12.1jupiter IN A 128.66.12.4 jup IN CNAME jupiterwww IN CNAME saturnenews IN CNAME jupiter

Page 50: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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

Page 51: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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

Page 52: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 52

Les résolutions inverses

1

arabica.info.uqam.caarabica.info.uqam.ca

… …

… …

… …

arpa

in-addr

132

208

255

132

189

2551

1 255

1 255

Page 53: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 53

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.

Page 54: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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, ...)

Page 55: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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: 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.

Page 56: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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

Page 57: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 57

Exemple de BD de zone

@ N SOA terre.univers.ca. abdel.terre.univers.ca. (16 ; numéro de série86400 ; rafraichissement3600 ; tentatives :360000 ; expiration604800 ; minimum )IN NS terre.univers.cIN NS ailleurs.univers.cIN MX 10 terre.univers.cIN MX 20 lune.univers.c

localhost IN A 172.0.0.1terre IN A 128.66.12.1jupiter IN A 128.66.12.4 jup IN CNAME jupiterwww IN CNAME arabicanews IN CNAME jupiter

@ N SOA terre.univers.ca. abdel.terre.univers.ca. (16 ; numéro de série86400 ; rafraichissement3600 ; tentatives :360000 ; expiration604800 ; minimum )IN NS terre.univers.cIN NS ailleurs.univers.cIN MX 10 terre.univers.cIN MX 20 lune.univers.c

localhost IN A 172.0.0.1terre IN A 128.66.12.1jupiter IN A 128.66.12.4 jup IN CNAME jupiterwww IN CNAME arabicanews IN CNAME jupiter

Page 58: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 58

Procédure de résolution -Exemple

NS de info.uqam.ca

? may.ny.unicom.com

arabica.info.uqam.ca

! 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

? may.ny.unicom.com

NS de com

NS de. (root)

NS de unicom.com

NS de ny.unicom.com

3

1

128.204.1.1411

12

Cache

12

Resolver

Page 59: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 59

La commande nslookup

Permet d'interroger le DNS.

$ nslookup arabica.info.uqam.caServer: cumin.telecom.uqam.cAddress: 132.208.16.240 Name: arabica.info.uqam.caAddress: 132.208.132.189

$ nslookup arabica.info.uqam.caServer: cumin.telecom.uqam.cAddress: 132.208.16.240 Name: arabica.info.uqam.caAddress: 132.208.132.189

$ nslookupDefault Server: cumin.telecom.uqam.caAddress: 132.208.16.240 > set type=MX> enst.frServer: ns3.uqam.caAddress: 132.208.16.240 Non-authoritative answer:enst.fr preference = 10, mail exchanger = smtp2.enst.frenst.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.frsmtp2.enst.fr internet address = 137.194.2.14…infres.enst.fr internet address = 137.194.160.3herculanum.int-evry.fr internet address = 157.159.11.15

$ nslookupDefault Server: cumin.telecom.uqam.caAddress: 132.208.16.240 > set type=MX> enst.frServer: ns3.uqam.caAddress: 132.208.16.240 Non-authoritative answer:enst.fr preference = 10, mail exchanger = smtp2.enst.frenst.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.frsmtp2.enst.fr internet address = 137.194.2.14…infres.enst.fr internet address = 137.194.160.3herculanum.int-evry.fr internet address = 157.159.11.15

Page 60: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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

Page 61: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 61

Le web

xxxxxxxx

Serveur: www.xyx.edu Serveur: uvt.enst.fr

xxxxxxxx

xxxxxxxx

HTTP sur TCP HTTP sur TCP

HyperlienHyperlien

Client

Page couranteaffichée

Internet

Page 62: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Page 63: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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 )

Page 64: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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 videCorps

Page 65: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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/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 videCorps de la réponse

Page 66: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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, …

Page 67: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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. …

Page 68: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 68

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

Page 69: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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

Page 70: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 70

Exemples de requêtes

GET http://www.info.uqam.ca/Programmation/tcpip.html HTTP/1.1

<Ligne Vide>

GET http://www.info.uqam.ca/Programmation/tcpip.html HTTP/1.1

<Ligne Vide>

GET Programmation/tcpip.html HTTP/1.1

<Ligne Vide>

GET Programmation/tcpip.html HTTP/1.1

<Ligne Vide>

POST Programmation/traitement HTTP/1.1

<Ligne Vide>

… Données …

POST Programmation/traitement HTTP/1.1

<Ligne Vide>

… Données …

URL relatif

GET Programmation/traitement?Par1&Par2 HTTP/1.1

<Ligne Vide>

GET Programmation/traitement?Par1&Par2 HTTP/1.1

<Ligne Vide>

Page 71: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Page 72: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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-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).

Page 73: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.  

Page 74: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 74

Exemples d'échanges HTTPPage :

<a HREF="http://www.info.uqam.ca/Test/texte.html"> Obtenir le texte </a>

GET Test/texte.html HTTP/1.1Accept: text/plain , image/*If-Modified-Since: Wed, 10 Sep 2003 14:20:21 GMTReferer: http://www.info.uqa.ca/index.htmlUser-Agent: Mozilla/2.0

Ligne vide

GET Test/texte.html HTTP/1.1Accept: text/plain , image/*If-Modified-Since: Wed, 10 Sep 2003 14:20:21 GMTReferer: http://www.info.uqa.ca/index.htmlUser-Agent: Mozilla/2.0

Ligne vide

HTTP/1.0 200 OKDate: Wed, 10 Sep 2003 14:20:21 GMTServer: NCSA/1.5.2Mime-Vesion: 1.0Content-Type: text/htmlLast-Modified: Wed, 10 Sep 1998 14:20:23 GMTContent-Length: 139

Ligne vide<html> ……</html>

HTTP/1.0 200 OKDate: Wed, 10 Sep 2003 14:20:21 GMTServer: NCSA/1.5.2Mime-Vesion: 1.0Content-Type: text/htmlLast-Modified: Wed, 10 Sep 1998 14:20:23 GMTContent-Length: 139

Ligne vide<html> ……</html>

Requête

Réponse

HEAD Test/texte.html HTTP/1.0User-Agent: Mozilla/2.0From: [email protected]

Ligne blanche

HEAD Test/texte.html HTTP/1.0User-Agent: Mozilla/2.0From: [email protected]

Ligne blanche

HTTP/1.0 200 OKDate: Wed, 10 Sep 2003 14:20:21 GMTServer: NCSA/1.5.2Mime-Vesion: 1.0Content-Type: text/htmlLast-Modified: Wed, 10 Sep 1998 14:20:23 GMT

HTTP/1.0 200 OKDate: Wed, 10 Sep 2003 14:20:21 GMTServer: NCSA/1.5.2Mime-Vesion: 1.0Content-Type: text/htmlLast-Modified: Wed, 10 Sep 1998 14:20:23 GMTRequête

Réponse

Page 75: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 75

Méthode GET : http://www.info.uqam.ca/cgi/recherche?item1+item2+item3

Requêtes avec paramètres

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, fcUser-Agent: Mozilla/2.0Host: saturne.info.uqam.ca

Ligne blanche

GET /cgi/saisie?champ1=Val1&champ2=Val2 Accept: */*Accept-language: en, fcUser-Agent: Mozilla/2.0Host: saturne.info.uqam.ca

Ligne blanche

GET cgi/recherche?item1+item2+item3 HTTP/1.0Accept: */*Accept-language: en, fcUser-Agent: Mozilla/2.0Host: saturne.info.uqam.ca

Ligne blanche

GET cgi/recherche?item1+item2+item3 HTTP/1.0Accept: */*Accept-language: en, fcUser-Agent: Mozilla/2.0Host: saturne.info.uqam.ca

Ligne blanche

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

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

Méthode GET à partir d'un formulaire :

Page 76: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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)

Page 77: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 77

Modèle avec CGI

HTTPD Variablesd ’environnment

CGI Programme/Script

stdin/stdout

QUERY_STRINGCONTENT_TYPEREMOTE_ADDR

...

Navigateur

Page 78: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 78

Fonctionnement du CGI

Browser

Post

Write environnement

Execute

Read environnement

Standart Input

Page HTMLStandart output

Serveur

SubmitSubmit

Programme

Page 79: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Page 80: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.

Page 81: La couche Applicatiopn

A. Obaid © - Téléinformatique (INF3270) Applications 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.