Développement Web. Les protocoles



Documents pareils
Protocoles Applicatifs

L3 informatique TP n o 2 : Les applications réseau

FTP & SMTP. Deux applications fondamentales pour le réseau Internet.

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Couche application. La couche application est la plus élevée du modèle de référence.

Protection des protocoles

Chapitre : Les Protocoles

Réseaux. 1 Généralités. E. Jeandel

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

Serveurs de noms Protocoles HTTP et FTP

Quelques protocoles et outils réseaux

(structure des entêtes)

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Introduction. Adresses

Introduction à HTTP. Chapitre HTTP 0.9

Les Réseaux Les transferts de données

INF8007 Langages de script

FTP & SMTP. File Transfert Protocol. Deux applications fondamentales pour le réseau Internet. Un protocole d échange de fichier «au dessus» de TCP :

DNS et Mail. LDN 15 octobre DNS et Mail. Benjamin Bayart, Fédération FDN. DNS - fichier de zone. DNS - configuration

Plan Général Prévisionnel (1/2) Internet et Outils L1/IO François Armand. Plan Général Prévisionnel (2/2) Unix, Réseau: Plan

2. DIFFÉRENTS TYPES DE RÉSEAUX

Introduction aux Technologies de l Internet

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type

La couche Applicatiopn

Internet. Web Sécurité Optimisation

Outils de l Internet

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Applications. Applications. Le système de nommage d Internet: Domain Name System. Applications. service de noms

Application Web et J2EE

Dans l'épisode précédent

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN

Cisco Certified Network Associate

L3 informatique Réseaux : Configuration d une interface réseau

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

ALOHA LOAD BALANCER METHODE DE CONTROLE DE VITALITE

2011 Hakim Benameurlaine 1

Développement des Systèmes d Information

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

Hébergement de site web Damien Nouvel

Les commandes relatives aux réseaux

SECURITE. Figure 1. Incident réseau, source CERT. Nombre. Sécurité

Introduction aux réseaux TCP/IP.

Réseaux et protocoles Damien Nouvel

18 TCP Les protocoles de domaines d applications

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Services Réseaux - Couche Application. TODARO Cédric

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

M2-ESECURE Rezo TP3: LDAP - Mail

Packet Tracer : configuration des listes de contrôle d'accès étendues, scénario 1

Cours CCNA 1. Exercices

Formation Iptables : Correction TP

Environnements informatiques

Programmation Réseau. ! UFR Informatique ! Jean-Baptiste.Yunes@univ-paris-diderot.fr

Couches 4 à 7 : Traitement des données

Culture informatique. Cours n 9 : Les réseaux informatiques (suite)

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

Installation d un Serveur de Messagerie

Configuration avancée de Postfix

Proxies,, Caches & CDNs

Le serveur HTTPd WASD. Jean-François Piéronne

Préparation au C2I. Année 2011

Présentation du modèle OSI(Open Systems Interconnection)

Plan. Programmation Internet Cours 3. Organismes de standardisation

INFO-F-404 : Techniques avancées de systèmes d exploitation

WebSSO, synchronisation et contrôle des accès via LDAP

CGI et SSI. La programmation CGI. Sources. Objectifs. Qu'est ce qu'un programme CGI? CGI

Programmation Internet Cours 4

Module: OSI, INTERNET ET PROGRAMMATION WEB TP 2 - Services TCP/IP-APACHE et xhtml. 1. Services TCP/IP : Protocoles d'applications standards

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Chapitre 7. Le Protocole SNMP 7.1 INTRODUCTION COMPOSANTES POUR L UTILISATION FONCTIONNEMENT LE PAQUET SNMPV1...

7.3 : Ce qu IPv6 peut faire pour moi

Les serveurs. UE 103b. Guillaume Burel.

EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Administration de Réseaux d Entreprises

Glossaire. ( themanualpage.org) soumises à la licence GNU FDL.

Réseaux. DNS (Domaine Name System) Master Miage 1 Université de Nice - Sophia Antipolis. (second semestre )

Services Réseau SSH. Michaël Hauspie. Licence Professionnelle Réseaux et Télécommunications

Les Réseaux Informatiques

Les clés d un réseau privé virtuel (VPN) fonctionnel

Le protocole HTTP. 10 minutes pour comprendre. HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1

Groupe Eyrolles, 2000, 2004, ISBN :

SERVEUR HTTP Administration d apache

Corrigé du TP 6 Réseaux

LINUX REDHAT, SERVICES RÉSEAUX/INTERNET

Plan. Le système de transfert de fichiers d'internet. Introduction aux systèmes de transfert de fichiers Le protocole FTP.

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

LES RESEAUX INFORMATIQUES

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

TP : Introduction à TCP/IP sous UNIX

Module http MMS AllMySMS.com Manuel d intégration

Les services usuels de l Internet

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Mr. B. Benaissa. Centre universitaire Nâama LOGO

DIFF AVANCÉE. Samy.

Introduction à l'internet et ces Protocoles

Transcription:

Développement Web NFA016 2007-2008 Les protocoles CNAM le 28 octobre 2007 O. Pons S. Rosmorduc M. Simonot 1 / 27

Notion de protocole Un réseau : ensemble de machines reliées entre elles. Communiquer : Parler "la même langue". Protocole de communication. Le protocoles dépendent du niveau ou l'on se place : Abstraction Organisation en s : Modèle OSI TCP/IP 2 / 27

Modèle OSI (fragile] Données application présentation session transport réseau liaison de données physique 7 6 5 4 3 2 1 application présentation session transport réseau liaison de données physique Données signal sur le lien physique 3 / 27

TCP/IP application HTTP, SMTP, SNMP, FTP, Telnet, NFS etc. présentation XDR, ASN.1, SMB, AFP etc session SO 8327 / CCITT X.225, RPC, Netbios,etc transport TCP, UDP, RTP, SPX, ATP etc réseau IP, ICMP, IGMP, X.25, CLNP, ARP, OSPF, RIP, IPX, DDP etc. liaison de données Ethernet, Token Ring, PPP, HDLC, Frame relay, RNIS, ATM, Wi Fi etc physique électronique, radio, laser, Bluetooth application HTTP, FTP, Telnet, SMTP, X, etc. transport TCP réseau IP interface Ethernet, Token Ring etc. application TFTP, SNMP, DNS, transport UDP OSI TCP/ IP 4 / 27

Identication d'une machine Numéro IP : 193.54.195.119 Nom de machine : www3.iie.cnam.fr DNS, résolution de nom Une tentative de connexion : [olivier@mamaison tmp]$ telnet www3.iie.cnam.fr Trying 193.54.195.119... telnet:connect to address 193.54.195.119: Connection refused telnet:unable to connect to remote host: Connection refused [olivier@mamaison tmp]$ 5 / 27

Identication d'un service : Port Numèro de port : identie un service Si le serveur écoute sur un port la connexion est possible. Si un deamon sshd tourne sur le port 22 sur www3.iie.cnam.fr [olivier@mamaison tmp]$ telnet www3.iie.cnam.fr 22 Trying 193.54.195.119... Connected to www3.iie.cnam.fr (193.54.195.119). Escape character is '^]'. SSH-1.99-OpenSSH_3.8.1p1 Debian-8.sarge.4... Si un serveur http tourne sur le port 80 sur www3.iie.cnam.fr [olivier@mamaison tmp]$ telnet www3.iie.cnam.fr 80 Trying 193.54.195.119... Connected to www3.iie.cnam.fr (193.54.195.119). Escape character is '^]'.... 6 / 27

Protocol et URL (Uniform Ressource Locator) Protocol : "language" utilisé pour communiquer une fois connecté URL :<protocol> :<partie dépendante du protocole> Forme génerale : http //<machine>:<port>/chemin>?value ftp //<utilisateur>:<motdepasse>@<machine>:<port>/reps/fichier file //chemin mailto adresse-mail telnet //<utilisateur>:<motdepasse>@<machine>:<port> Exemples : http://www3.iie.cnam.fr/~pons/cours/cgi-bin/toto.cgi?moi=olivier telnet://pons@lunix121.iie.cnam.fr:22 mailto:pourlesnews@yahoo.fr ftp://ftp.ens-cachan.fr/mirror/mandrakelinux/ file://home/pons/tmp.html RCF (Request for comment), documents de description des protocoles 7 / 27

Dialoguer "à la main" avec un serveur 1. se connecter sur le port correspondant au service 2. dialoguer en respectant le protocole 8 / 27

Exemple : L'envoi de mails, SMTP [inviteunix~] $telnet smtp.free.fr 25 Trying 212.27.48.4... Connected to smtp.free.fr. Escape character is '^]'. 220 smtp1-g19.free.fr ESMTP Postfix EHLO olivier 250-smtp1-g19.free.fr... 250 8BITMIME MAIL FROM: pons@cnam.fr 250 Ok RCPT TO: pourlesnews@yahoo.fr 250 Ok DATA 354 End data with <CR><LF>.<CR><LF> test pour le cours protocols... C beau.. 250 Ok: queued as A341D3480 QUIT 221 Bye Connection closed by foreign host. 9 / 27

Exemple : L'envoi de mails, SMTP 2 Fixer les champs from et to : HELO moi MAIL FROM: pons@cnam.fr RCPT TO: pons@cnam.fr DATA From: segolene@ps.fr To: jacque@elyse.fr Subject: un test blabla. QUIT 10 / 27

Exemple : L'envoi de mails, SMTP 3 envoyer des images, des textes avec accent, des caractères plus compliqués... Type MIME (Multipurpose Internet Mail Extensions) EHLO moi MAIL FROM:pons@cnam.fr RCPT TO:pons@cnam.fr DATA From: candidats@cnam.fr To: leprochain@elyse.fr Subject:"bientot moi..." MIME-Version: 1.0 Content-Type: image/jpg; name="arrow.gif" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="arrow.gif" R0lGODlhBwAEAIAAAAAAAP///yH5BAEAAAEALAAAAAAHAAQAAAIIhA+BGWoN WSgAOw== ====. 11 / 27

Exemple : La reception de mails, POP pons@pc-olive:~ telnet pop.mail.yahoo.fr 110 Trying 217.12.10.100... Connected to pop1.mail.vip.ukl.yahoo.com. Escape character is '^]'. +OK hello from popgate(2.35.8) USER pourlesnews +OK password required. PASS monmotdepasse +OK maildrop ready, 83 messages (498477 octets) (80067 1073741824) LIST +OK 83 messages (498477 octets) 1 16115 2 943 3 1189 4 4021 5 2007 6 4922 7 762... 12 / 27

Exemple : La réception de mails, POP 2... TOP 7 10 +OK 762 octets X-Apparently-To: pourlesnews@yahoo.fr via 217.12.10.165; Mon, 30 Oct 2006 03:40: 44-0800 X-Originating-IP: [212.27.42.27] Authentication-Results: mta517.mail.mud.yahoo.com from=cnam.fr; domainkeys=neutral (no sig) Received: from 212.27.42.27 (EHLO smtp1-g19.free.fr) (212.27.42.27) by mta517.mail.mud.yahoo.com with SMTP; Mon, 30 Oct 2006 03:40:44-0800 Received: from olivier (nor75-7-81-57-85-121.fbx.proxad.net [81.57.85.121]) by smtp1-g19.free.fr (Postfix) with ESMTP id A341D3480 for <pourlesnews@yahoo.fr>; Mon, 30 Oct 2006 12:39:13 +0100 (CET) Message-Id: <20061030113913.A341D3480@smtp1-g19.free.fr> Date: Mon, 30 Oct 2006 12:39:13 +0100 (CET) From: pons@cnam.fr To: undisclosed-recipients:; test pour le cours protocol... C beau. QUIT +OK server signing off. Connection closed by foreign host. 13 / 27

Exemple : le web, HTTP pons@pc-olive:~$ telnet rdp-pentium.iie.cnam.fr 80 Trying 193.54.225.178... Connected to rdp-pentium.ensiie.fr. Escape character is '^]' GET /users/pons/www/excours.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>example pour cours http</title> </head> <body> <p>mon exemple</p>c beau </body> </html> Connection closed by foreign host. 14 / 27

HTTP Propose diérentes méthodes qui dépendent des versions HTTP original (0.9) : GET et connection fermée HTTP 1.0 : ajout de HEAD et POST +... HTTP 1.1 : ajout de OPTIONS, CONNECT et TRACE 15 / 27

Exemple : HTTP pons@pc-olive:~$ telnet rdp-pentium.iie.cnam.fr 80 Trying 193.54.225.178... Connected to rdp-pentium.ensiie.fr. Escape character is '^]'. HEAD /excours.html HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 30 Oct 2006 04:19:05 GMT Server: Apache-AdvancedExtranetServer/2.0.47 (Mandrake Linux/1.9.91mdk) Last-Modified: Mon, 30 Oct 2006 02:32:44 GMT ETag: "4b099-50-15a8ab00" Accept-Ranges: bytes Content-Length: 80 Connection: close Content-Type: text/html; charset=iso-8859-1 Connection closed by foreign host. pons@pc-olive:~$ 16 / 27

Exemple : HTTP [olivier@mamaison]$ telnet www3.iie.cnam.fr 80 Trying 193.54.195.119... Connected to www3.iie.cnam.fr (193.54.195.119). Escape character is '^]'. POST /cgi-bin/lecture.cgi?moi=oliver&elle=marianne HTTP/1.0 Host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: 30 vous=les+eleves&eux=les+autres HTTP/1.1 200 OK Date: Sun, 19 Nov 2006 00:58:27 GMT Server: Apache/1.3.33 (Debian GNU/Linux) mod_ssl/2.8.22 OpenSSL/0.9.7e Connection: close Content-Type: text/html; charset=iso-8859-1 elle === marianne <br> vous === Les eleves <br> eux === Les autres <br> moi === oliver <br> Connection closed by foreign host. 17 / 27

Exemple : HTTP pons@pc-olive:~ telnet rdp-pentium.iie.cnam.fr 80 Trying 193.54.225.178... Connected to rdp-pentium.ensiie.fr. Escape character is '^]'. OPTIONS /excours.html HTTP/1.1 Host: rdp-pentium.iie.cnam.fr HTTP/1.1 200 OK Date: Mon, 30 Oct 2006 04:25:33 GMT Server: Apache-AdvancedExtranetServer/2.0.47 (Mandrake Linux/1.9.91mdk) Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Length: 0 Content-Type: text/html; charset=iso-8859-1 X-Pad: avoid browser bug Connection closed by foreign host. 18 / 27

Codes de retour 20X : OK 40X,50X : Problèmes 19 / 27

CGI Programme qui écrit sur sa sortie standard, le corps de ce qui va être envoyé au client par le serveur Content-type: text/html <html> <head> <title>page HTML produite par mon script CGI </title> </head> <body> <h1>encore un exemple</h1> que pensez vous de <strong>ça </strong> </body> </html> 20 / 27

CGI En bash #!/bin/bash echo "Content-type: text/html" echo echo "<b>en shell</b>" en perl #!/usr/bin/perl printf ("Content-type: text/html\n\n"); printf ("En <b>perl </b>\n"); 21 / 27

CGI en C / exemplecgi.c / #include<stdio.h> int main(void){ printf ("Content-type: text/html\n\n"); printf ("En <b>langage C </b>\n"); return 0; } 22 / 27

CGI Java / pour compiler : javac exampleenjava.java gcj g main=exampleenjava o ExempleEnJava.cgi ExampleEnJava.class / class ExampleEnJava { public static void main (String [] args){ System.out. println ("Content-type: text/html\n\n"); System.out. println ("En <b>java </b>\n"); } } en Caml / compiler avec ocamlopt / let rec fac n = if (n<1) then 1 else n fac(n 1);; Printf. printf "Content-type: text/html\n\n";; Printf. printf "<h2>un peut de calcul</h2>\n";; Printf. printf "factoriel 10 vaut %d\n" (fac 10);; 23 / 27

Le passage des paramètres Variables d'environnement REQUEST_METHOD : la méthode utilisée QUERY_STRING : les données dans l'url CONTENT_LENGTH : la longueur des autres données CONTENT_TYPE HTTP_USER_AGENT,... 24 / 27

Exemple de traitement cgi #!/usr/bin/perl ###fonction d'analyse des arguments renvoi ###une liste d'association nom/valeur sub Parse_Form { #recuperer les argument en fonction de la methode ################################################## if($env{'request_method'} eq 'GET') { #c'est GET on va decouper la ligne de commande #les valeurs sont separee par & #on les mets dans un tableau @paires = split (/&/, $ENV{'QUERY_STRING'}); } #sinon ca doit etre POST mais verifions elsif($env{'request_method'} eq 'POST') { 25 / 27