Programmation Internet et Intranet
Stéphane Frénot INSA Lyon 1998
stephf@lisiflory.insa-lyon.fr
Déroulement du cours
• Architectures
• C/S de données
• Java
• Langages de programmation
• Composants distribués
• Autres approches
INTRODUCTION
Internet
• Réseau de réseaux
• Protocoles d’échange d’information
– Bas niveau : TCP,IP ...
– Haut niveau : SMTP, NNTP
• RFC
Protocoles
C. Application C. Présentation C. Session
C. Transport C. Réseau
C. Liaison de données C. Physique
http ftp telnet
gopher pop3
Applications
tcp udp
Transport
ip igmp
Réseau
icmp
Interface
physique rarp
Liaison
arp
Protocole Trame
App
Tra
Rés
Phy
Données Données Entête http
Données Entête http
Entête TCP
Données Entête http
Entête TCP Entête IP
Données Entête http
Entête TCP Entête IP
Deb Eth
Message applicatif
Segment TCP
Datagramme IP (Packet)
Fin Eth
Protocoles
Serveur Client
Requête
Réponse
•Simple
•Publique
•Portable
Caractéristiques d’un protocole
• Nom : Simple Mail Transfert Protocol
• Rfc : 1830, 1845, 1846… (ftp://ftp.univ-lyon1.fr/pub/rfc)
• Mode de fonctionnement : Connecté
• Port de connexion : 25
• Commande / Requêtes : EXPN, QUIT, HELO...
• Client : Eudora
• Serveur : Sendmail
Protocoles Applicatifs Exemples
Famille Nom Client Serveur Port
Courrier SMTP Sendmail Sendmail 25 Pop3 Eudora Popper 110
IMAP Eudora Imapd 143
Transfert de fichiers FTP ftp Ftpd 20/21
Forums NNTP Tin Nntpd 119
Web HTTP Netscape Httpd 80
Conversion IP/Nom DNS Resolver BIND in.named
42/udp
Fonctionnement d’un serveur
•Démon
•Ecoute sur un port
•Accepte une connexion
•Répond aux requêtes du client
•Principe de lancement
•Manuel
•Inetd
•Boot
Exemple de connexion
telnet ifhpserv 25
=>220 ifhpserv.insa-lyon.fr ESMTP Sendmail 8.7.1/8.6.9 ready at Sun, 11 Oct 1998 13:52:07 +0200 (METDST)
EXPN stephane.frenot
=>250 Stephane FRENOT <stephf@lisiflory.insa-lyon.fr>
---
Programmes mis en œuvre :
?
/etc/services
tcpmux 1/tcp # rfc-1078 echo 7/tcp
echo 7/udp
discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp
daytime 13/udp netstat 15/tcp
chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp
ftp 21/tcp telnet 23/tcp
smtp 25/tcp mail
/etc/inetd.conf
# Internet services syntax:
# <service_name> <socket_type> <proto> <flags> <user> <server_pathname> <args>
#
# Ftp and telnet are standard Internet services.
#
ftp stream tcp nowait root /usr/etc/in.ftpd in.ftpd telnet stream tcp nowait root /usr/etc/in.telnetd in.telnetd
#
# Shell, login, exec, comsat and talk are BSD protocols.
#
shell stream tcp nowait root /usr/etc/in.rshd in.rshd
#
# Popper
#
pop3 stream tcp nowait root /usr/local/lib/popper popper -s -d -t /var/log/poplog
Intranet
Intranet B Intranet A
Extranet A/B Internet
FireWall
GateWay
GateWay
Architecture WEB
Le Web : l’architecture
Réseau de ressources d’information (89/93/94)
• Clients de consultation
– Navigateur, butineur, arpenteur, browser...
– Netscape Communicator, Microsof Internet Explorer
• Serveurs de documents
– HTTP, démon HTTP, Serveur Web
– Apache (www.apache.org), Microsoft IIS, Netscape, Cern
=> Consultation de documents
Web : Architecture documentaire
Principes d’échange des documents
• Standardiser les échanges
• Identifier de manière unique les documents
• Standardiser les formats des documents
• Connecter les documents dans un hypertexte
HTTP/1.1
• Requêtes :
– GET, HEAD, POST, (PUT)
• Réponses :
– 100 - 199 : Informatif : 100 Continue
– 200 - 299 : Requête client réussie : 200 OK
– 300 - 399 : Requête client redirigée : 301 Moved Permanently – 400 - 499 : Requête client incomplète : 408 Request Time-out – 500 - 599 : Erreur du serveur : 500 Internal Server Error
• Entêtes :
– Généraux : Cache-Control : no-cache ...
– Client : User-Agent : mozilla 2.0 – Serveur : Retry-After : 260
– Entité : Content-Length : 821
Exemple HTTP
• telnet lisiaix0 80
• >GET /index.html HTTP/1.0
• >User-Agent: libwww/2.12
• >
• => HTTP/1.1 200 OK
• => Date: Fri, 11 Feb 1998 18:30:27 GMT
• => Server: Apache/1.2.4
• => Content-Length: 381
• => Content-Type: text/html
• =>
• => <HTML>
• => <BODY>
• => Bonjour tout le monde ....
• => </BODY>
• => </HTML>
Identification des ressources URI/URL
liste des paramètres
(requêtes) nom du pointeur ds le doc. HTML Chemin d'accès
(relat. ou absol.) 80 par défaut
<1023 root
1023 < x < 65537 user méthode protoc. d'accès
à la ressource file ress. locale
ftp FTP http HTTP telnet TELNET gopher GOPHER wais WAIS
news NNTP
nom de la machine
méthode://machine:port/fichier[#ancre | ?paramètres]
Standardiser les formats : MIME
• Fichiers de correspondance format/suffixe
• Serveur : trouve l’emballage
application/msword doc
application/octet-stream bin dms lha lzh exe class
audio/basic au snd
chemical/x-pdb pdb xyz
image/gif gif
message/news multipart/mixed
text/html html htm video/quicktime qt mov x-conference/x-cooltalk ice
x-world/x-vrml wrl vrml
• Client : trouver l’action à réaliser
Interpréte la ressource (text/html, image/gif, plug-ins) Transmet la ressource à une application externe
Demande à l’utilisateur
Hypertexte de documents : HTML
• HTML : HyperText Markup Langage 89 ?
• "Langue maternelle de publication sur le Web que tous les ordinateurs doivent comprendre"
– Publier des documents
– Chaîner de l’information par des liens HT – Définir des formulaires de saisie
– Inclure divers types ressources
• DTD SGML
– Définit la structure d’un document HTML
• Les balises et leur organisation
– Structures des balises d’un document HTML
• Contenu des balises
HTML Structure d'un document
<Html>
<Head>
Information sur le document
</Head>
<Body>
Document html
</Body>
</Html>
---
<!Element HTML (Head, Body)>
<!Element Head pcdata>
<!Element Body pcdata>
HTML Les types de balises
• Balises simples d'organisation : <br>, <hr>
• Balise de formattage de texte : <b> </b>, <i> </i>, <center></center>
• Balises logiques :
<adresse>... <adresse>, <bloquote>...</bloquote>, <H1>...</H1>• Balises structurelles : <table> <tr> <td>,<ol> <li>
• Balises paramétrées :
<img src="logo.gif">,<a href= "index.html">,<p align="center">• Appels de scripts clients : <script><applet><object>
• Formulaires et champs de saisie de l'information : <form> <input>
• Multidocuments ou document multicadre : <frameset> <frame>
HTML Exemple
<HTML>
<HEAD>
<META NAME="Author" CONTENT="sfrenot">
<META NAME="GENERATOR" CONTENT="Mozilla/4.03 [fr] (Win95; I)[Netscape]">
<TITLE>Publications</TITLE>
</HEAD>
<BODY BACKGROUND="fond.jpg">
<IMG SRC="./logoinsa.gif" WIDTH=40 HEIGTH=40>
Ceci est le texte du document il peut contenir des balises simples
<I> en italique </I> <br><hr>des balises paramétrées
<P align="center"> paragraphe centré</p>
et des <A HREF="HTTP://www.insa-lyon.fr"> hyperliens </A>
<table border=1><tr><td> et </td><td> un </td><td> tableau </td></tr>
<tr><td colspan=3>+++++++++++++++++++++++</td></tr></table>
</BODY>
</HTML>