Chapitre 8
Programmation Internet en Java
Vous avez d´ej`a utilis´e Internet, le plus connu des inter-r´eseaux mondiaux d’ordinateurs et
quelques-uns de ses services, en particulier le web et le courrier ´electronique. On peut ´evidemment
utiliser des progiciels pour acc´eder `a ces services : un navigateur tel que Netscape ou Internet
Explorer pour acc´eder au web, un lecteur de courrier ´electronique tel que Eudora ou Outlook
Express. On peut aussi vouloir savoir comment ¸ca fonctionne, concevoir de tels logiciels ou des
utilitaires pour quelques probl`emes sp´ecifiques que le param´etrage des progiciels ne permet pas.
On a alors `a programmer l’acc`es `a Internet. C’est ce que nous allons voir dans ce chapitre `a
travers Java.
101
102 CHAPITRE 8. PROGRAMMATION INTERNET EN JAVA
8.1 Rappels sur Internet
Nous allons hh rappeler ii les ´el´ements d’Internet dont nous aurons besoin. Nous concevons
cette section de telle mani`ere qu’elle puisse servir d’initiation.
8.1.1 Le protocole IP
R´eseaux d’ordinateurs.- Des ordinateurs peuvent ˆetre reli´es entre eux de fa¸con `a pouvoir ´echanger
des donn´ees. Il existe plusieurs fa¸cons physiques de les relier : en eseau local grˆace `a un ablage,
en en´eral des ables torsad´es (moins de cent m`etres) ou des ables coaxiaux (un peu plus) ;
avec une fibre optique pour des distances plus grandes ; grˆace `a un modem `a travers le r´eseau
t´el´ephonique ou sans fil par fr´equence hertzienne. Qu’importe la fa¸con pour nous, ce que l’on
veut c’est que l’on puisse trasmettre et recevoir une suite de ero et de un.
Protocole de eseau.- Dans un r´eseau d’ordinateurs, il est rare qu’il n’y ait que deux ordinateurs
et ce n’est, de toute fa¸con, pas le cas pour Internet. Un ordinateur donn´e est, plus ou moins,
reli´e `a tous les autres ordinateurs du eseau, directement ou indirectement. Lorsqu’on envoie des
donn´ees, il faut donc indiquer `a quel ordinateur elles sont destin´ees et indiquer qui envoie si on
veut une r´eponse.
Une donn´ee sera donc compos´ee de deux parties :
les donn´ees de protocole de r´eseau permettant d’identifier celui qui envoie, celui qui
doit recevoir ainsi que d’autres param`etres ;
les donn´ees proprement dites, appel´ees donn´ees d’application.
Ces donn´ees doivent correspondre `a un format d´etermin´e par un protocole de r´eseau. Il
existe de nombreux protocoles de r´eseau comme AppleTalk pour les MacIntosh, Novell NetWare
longtemps pr´edominant pour les compatibles PC et TCP/IP qui est la suite de protocoles utilis´es
sur Internet mais aussi, de nos jours, de beaucoup de r´eseaux locaux. Nous ne nous ineresserons
qu’`a TCP/IP dans ce chapitre, la seule suite de protocoles prise en charge par Java.
Notion d’adresse IP.- Chaque ordinateur reli´e `a Internet rcoit un identifiant, ´evidemment uni-
que, d´etermin´ee par un organisme international, appel´e adresse IP (pour Internet Protocol).
En fait cet organisme attribue certaines plages d’adresses `a chaque pays, celui-ci ayant un
organisme national charg´e d’attribuer les adresses. Cet organisme attribue lui-mˆeme des plages
d’adresses aux grands consommateurs (entreprises, universit´es...), chacun ayant un responsable
charg´e d’attribuer les adresses `a tel ou tel ordinateur.
Remarquons que lorsqu’on passe par un FAI (Fournisseur d’Acc`es Internet, ou ISP pour
Internet Service Provider en anglais), notre ordinateur ne dispose pas d’une adresse IP fixe en
en´eral mais d’une adresse dynamique, c’est-`a-dire que le fournisseur lui attribue une adresse
lors d’un acc`es `a son service, cette adresse pouvant ˆetre diff´erente d’un acc`es `a l’autre.
8.1. RAPPELS SUR INTERNET 103
Format d’une adresse IP.- `
A l’heure actuelle cette adresse IP tient sur quatre octets, mais elle
devrait passer `a six octets bienot au vu de l’engouement pour Internet. La suite de 32 bits est
utilis´ee en interne mais il est traditionnel de esigner cette adresse sous la forme de quatre entiers
en d´ecimal (compris entre 0 et 255) s´epar´es par des points, par exemple :
130.65.86.66
Nom de domaine.- Une telle adresse n’est pas tr`es facile `a retenir aussi la plupart des adresses
IP sont-elles associ´ees `a un nom de domaine tel que :
java.sun.com
Chacun peut essayer de choisir le nom de domaine qu’il veut mais, pour ´eviter que le mˆeme
nom corresponde `a deux adresses IP diff´erentes, ce nom est autoris´e (ou non) par un organisme
international.
Serveur de nom.- Si l’on choisit d’envoyer le nom de domaine et non l’adresse IP (ce que l’on
fait le plus souvent), il faut bien que quelqu’un fasse la traduction. C’est le but du serveur de
nom (ou DNS pour Domain Naming Service) de l’administrateur du eseau d’entreprise ou du
fournisseur d’acc`es `a Internet.
Il existe encore quelques probl`emes parfois avec ces services, aussi certains apprennent-ils par
cœur le num´ero IP de leur point d’acc`es avant de partir `a l’´etranger.
Notion d’application et de port.- Un ordinateur reli´e `a Internet peut utiliser plusieurs types de
programmes servant `a des buts diff´erents : l’ordinateur peut avoir, par exemple, un navigateur
Web et un programme pour lire le courrier ´electronique. On peut, de plus, avoir des sessions
diff´erentes pour un mˆeme programme : utiliser, par exemple, deux instances du navigateur. On
parle d’application et d’instance d’application Internet.
Le protocole Internet attribue un num´ero de port, compris entre 0 et 65 535, `a chaque
instance d’application.
Mod`ele client/serveur.- Pour initier une session entre deux ordinateurs, l’un est consid´er´e comme
le serveur et l’autre comme un client de ce serveur : le serveur est en attente perp´etuelle de
clients ; lorsqu’un client essaie de se connecter, il l’accepte (ou non) et une communication peut
commencer.
Les num´eros de port des clients sont attribu´es (de fa¸con plus ou moins al´eatoire) par le sous-
service eseau du syst`eme d’exploitation de l’ordinateur alors que les services bine connus ont un
num´ero de port attribu´e par un organisme de egulation international : par exemple le serveur
Web utilise le port 80, le serveur de lecture du courrier ´electronique le port 110.
Conclusion.- Les donn´ees du protocole IP doivent contenir :
- l’adresse IP du destinataire ;
- le num´ero de port du destinataire ;
- l’adresse IP de l’exp´editeur ;
- le num´ero de port de l’exp´editeur.
104 CHAPITRE 8. PROGRAMMATION INTERNET EN JAVA
8.1.2 Un exemple de protocole d’application : HTTP
Notion de protocole d’application.- Nous venons de voir comment TCP/IP permet d’´etablir une
connection Internet entre deux ports de fa¸con `a ce que deux ordinateurs puissent ´echanger des
donn´ees. Chaque application Internet poss`ede son propre protocole d’application, qui d´ecrit
comment les donn´ees de cette application particuli`ere sont transmises.
Le protocole HTTP.- Une des applications les plus utilis´ees sur Internet, avec le courrier ´electro-
nique, est le web. Celui-ci utilise deux protocoles : HTTP (pour Hypertext Transfer Protocol)
qui est utilis´e pour la transmission des donn´ees (qui est du texte) et HTML (pour HyperText
Markup Language) pour la description du formatage.
Nous avons d´ej`a rencontr´e HTML `a propos des applets. Int´eressons-nous ici `a HTPP pour
recevoir des donn´ees brutes.
ole du navigateur.- Supposons que nous tapions l’adresse web (ou URL pour Uniform Resource
Locator, prononc´e hh Earl ii) :
http://java.sun.com/index.html
sur notre navigateur de fa¸con `a charger la page correspondante. Que se passe-t-il alors ? Le
navigateur effectue les ´etapes suivantes :
il examine la partie de l’URL comprise entre la double oblique et la premi`ere oblique simple
(ici hh java.sun.com ii) pour identifier l’ordinateur auquel se connecter. Puisque cette partie
de l’URL contient des lettres, il doit s’agir d’un nom de domaine, aussi le navigateur effectue
une requˆete aupr`es d’un serveur DNS pour en obtenir l’adresse IP.
le navigateur d´eduit du pr´efixe hh http ii de l’URL (c’est-`a-dire ce qui pr´ec`ede hh :// ii) que
le protocole que l’on veut utiliser est HTTP, aussi choisit-il le port 80 par d´efaut.
il ´etablit alors une connection Internet au port 80 de cette adresse IP.
le navigateur d´eduit du suffixe hh /index.html ii que l’on veut voir afficher le fichier de
nom physique hh /index.html ii. Il envoie donc une requˆete, format´ee comme commande
HTTP, `a travers la connection qu’il vient d’´etablir. Cette requˆete est de la forme :
GET /index.html HTTP/1.0
ligne blanche
le serveur web de l’ordinateur distant rcoit la requˆete, la d´ecode, cherche le fichier de nom
physique hh /index.html ii dont le chemin est relatif `a un certain r´epertoire et en envoie le
contenu au navigateur de votre ordinateur.
le navigateur re¸coit ce fichier, qui est cens´e ˆetre un fichier texte de format HTML, traduit
le code HTML pour faire apparaˆıtre la page web. Si le fichier contient, par exemple, des
images le navigateur effectue une requˆete GET par image.
Les commandes HTTP.- Le tableau ci-dessous donne les commandes HTTP :
Commande Signification
GET Renvoie l’item demand´e
HEAD Renvoie seulement l’en-t^ete de cet item
OPTIONS Renvoie les options de communication d’un item
POST Fournit des donn´ees `a une commande du serveur et
renvoie le r´esultat
PUT Stocke un item sur le serveur
DELETE Efface un item du serveur
TRACE Donne le chemin de la communication
8.1. RAPPELS SUR INTERNET 105
Seule la commande GET nous int´eressera ici.
Exemple avec Telnet.- Utilisons la commande GET avec l’application telnet. Cette application,
que vous connaissez certainement d´ej`a, permet `a un utilisateur d’envoyer des caract`eres `a un
ordinateur distant et de visualiser les caract`eres que cet ordinateur renvoie.
Lan¸cons telnet `a partir d’une ligne de commande :
telnet java.sun.com 80
Soyez maintenant tr`es soigneux car vous ne pouvez pas corriger votre envoi et il n’y a pas eces-
sairement d’´echo `a l’´ecran. Tapez :
GET /index.html HTTP/1.0
ligne suivante
ligne suivante
Remarquez qu’il faut deux passages `a la ligne.
Le serveur envoie comme eponse le fichier (texte) demand´e, qui est affich´e `a l’´ecran sans
pause. On ne voit donc que la fin du fichier, dans lequel on reconnaˆıt quelques balises HTML.
Remarque.- Cet exemple avec Telnet nous montre l’extrˆeme sensibilit´e de HTTP (on ne peut
pas revenir en arri`ere lorsqu’on fait une erreur, syntaxe tr`es rigide) et on comprend pourquoi on
a int´erˆet `a utiliser un programme, ce que nous allons faire maintenant.
1 / 18 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !