Internet et client-serveur

publicité
Internet et le clientserveur
•Le Web
• HTML
•Protocoles
• Le client
universel
• Contenus
dynamiques
Licence Pro IE
2006-2007
Cours Internet / Intranet
Concepts généraux
 Internet
et le Web
 HTML, XML
 Les protocoles :HTTP TCP/IP
 Le client Universel
 HTML dynamique/JavaScript
 CGI / Servlets /PHP /ASP /JSP
 RMI, Corba
Cours Internet Gérard
Rozsavolgyi 2006-2007
2
Internet et le Web
 Internet
: La Toile
 Ensemble de protocoles et services
accessibles mondialement
 Intranet
 Client universel « léger » et à bas prix :
Le navigateur
 Souplesse et connectivité
Cours Internet Gérard
Rozsavolgyi 2006-2007
3
Les débuts du Web
 Cern.
Tim Berners Lee. Consultation
de vastes bases documentaires.
Hypertexte
 Le navigateur : Interface universelle
- d ’accès à l ’information
- simple, conviviale, bon marché
- Multi-média
Cours Internet Gérard
Rozsavolgyi 2006-2007
4
L ’évolution du Web
Mouvement d ’unification et de
renouvellement de l ’informatique mondiale.
 Nouveaux standards et nouvelles
technologies :
- TCP/IP-HTTP-FTP-HTML-XML
- SMTP-POP3-IMAP4
- NNTP
- CORBA/IIOP- Microsoft DCOM, .NET
- Java RMI , JDBC , Servlets, Beans,
Enterprise Java Beans

Cours Internet Gérard
Rozsavolgyi 2006-2007
5
Applications *NET
et diffusion d ’informations de
natures et de formats très variés.
 Messagerie et échange de documents
 Archivage, indexation et documentation
 Groupes de discussion. Travail de
groupe
 Potentiellement tout le système
d ’information de l ’entreprise
 Nouveau slogan de Microsoft : .net
 Publication
Cours Internet Gérard
Rozsavolgyi 2006-2007
6
Architecture web de base
Requête URL
Navigateur
HTML
Réponse
HTML
Serveur
Web
HTTP
HTTP
TCP/IP
TCP/IP
Cours Internet Gérard
Rozsavolgyi 2006-2007
7
Technolgies client
 Le
Browser
 HTML-XML-JavaScript
 Java- La Machine virtuelle Java
 Chargement d’une applet Java
 Lancement d’une action sur le serveur
Cours Internet Gérard
Rozsavolgyi 2006-2007
8
Les Applets
Cours Internet Gérard
Rozsavolgyi 2006-2007
9
Rappel HTML

Langage a base de « tags » ou marqueurs
 Langage de description et de mise en page
avec capacités hypertextes.
 Prendre un navigateur, puis faire « regarder
le code source d ’une page »
 Devient plus « dynamique » depuis la version
4
 Voir le site W3.org
Cours Internet Gérard
Rozsavolgyi 2006-2007
10
HTML “évolué”

Formulaires,
attente d’une
réponse
puis actualisation de
la page
ou génération
complète d’une page
HTML nouvelle
 JavaScript
Cours Internet Gérard
Rozsavolgyi 2006-2007
11
Exemples
• Formulaires
• Javascript
Cours Internet Gérard
Rozsavolgyi 2006-2007
12
Tags spécifiques clientserveur
 CGI
<form method=get
action="http://www.nasa.fr/cgibin/formulaire">
 JavaScript
<script language="javascript">
 Applets <APPLET code=Appl.class...
Cours Internet Gérard
Rozsavolgyi 2006-2007
13
HyperTexT Transfer Protocol

Un protocole de communication de niveau
“intermédiaire”
 Relativement “universel”
 Gérant l’échange de données de différentes
sortes ( textes, images, sons, etc.)
Cours Internet Gérard
Rozsavolgyi 2006-2007
14
Serveur HTTP
 Sur
le serveur HTTP, un processus
tourne en tache de fond à l’écoute des
requêtes clientes
 A l’arrivée d’une requête, création d’un
processus (Unix ou NT) ou d’un thread
pour la traiter
 Traitement différencié : CGI, JavaScript
cote serveur, Servlets, NSAPI
Cours Internet Gérard
Rozsavolgyi 2006-2007
15
Principaux serveurs Web
 Apache
(Version 1.3.x ou 2.0 ), souvent
associé à Unix, beaucoup de modules
disponibles
 IIS : le serveur Web professionnel de
Microsoft.
 Netscape iplanet Server
 Domino WebServer ou Websphere
(IBM)
Cours Internet Gérard
 Zope (Python) Rozsavolgyi
2006-2007
16
Technologies “serveur”
Rendre un service :
- renvoi d’une page HTML statique
- renvoi d’une page HTMLdynamique.
Crée par tout programme capable de
s’interfacer avec les technologies
intermédiaires (via HTTP): CGI, Servlets, PHP,
ASP
JavaScript
- exécution d’une méthode d’un objet à l’aide
de RMI(Java) ou IIOP(CORBA) (sans HTTP)
Cours Internet Gérard
Rozsavolgyi 2006-2007
17
L’interface CGI




CGI signifie Common Gateway Interface. Il s'agit de
la description de l'interface entre un serveur HTTP et
des applications externes activées par ce serveur
Un programme CGI est un programme qui sera
automatiquement activé par le serveur HTTP, en lieu
et place de la recherche d'un document
Ces programmes sont écrits dans des langages
appelés des langages de script (Perl, C, C++, Java)
La sortie standard du programme (instructions
d’écriture) sera redirigée par le serveur HTTP vers le
client qui verra ainsi un document virtuel
Cours Internet Gérard
Rozsavolgyi 2006-2007
18
Le programme CGI peut
ainsi
envoyer l’URL d'un autre document.
 envoyer: Content-type: TypeMime
où TypeMime est par exemple text/html, image/gif, ou tout
autre type de document généralement reconnu par les
clients WWW (voir la section The Content-Type Header Field
du standard MIME)
 Une ligne vide
 puis du contenu du document "virtuel“.
Par exemple, en C++:
cout<<“Content-type: text/html’”<<endl;
cout<<endl;
cout<<“<html><head><title>Demo</title></head>”<<endl;
cout<<“<body><h1>Demo de programme cgi</h1>”<<endl;
cout<<“C''est aussi simple que ca !”<<endl;
cout<<“</body></html>”;

Cours Internet Gérard
Rozsavolgyi 2006-2007
19
HTTP et Interface CGI
 Utilisation
de “variables d’environnement”
pour communiquer avec des scripts CGI
 Trois méthodes essentielles employées
pour communiquer :
GET
POST
HEAD
 HTTP 1.0  1.1
Cours Internet Gérard
Rozsavolgyi 2006-2007
20
Méthode GET

Si votre formulaire inclut la mention
METHOD="GET" dans son tag FORM
votre programme CGI recevra la réponse
encodée au formulaire dans la variable
d’environnement :
QUERY_STRING
 Limitation dans la longueur de la chaine
ainsi transmise
 Données du formulaire concaténées à l’URL
Cours Internet Gérard
Rozsavolgyi 2006-2007
21
Méthode POST

Si vous avez mis METHOD="POST" dans
le tag FORM, alors votre programme CGI
recevra la réponse dans le “stdin”
Le serveur n’envoie pas un EOF a la fin
des données. Il faut généralement se
débrouiller avec la variable
d’environnement CONTENT_LENGTH
pour determiner la quantité de données a
lire depuis l’entrée standard
 Données du formulaire non visibles sur
l’URL
Cours Internet Gérard
Rozsavolgyi 2006-2007
22
Récupération de l’information

Lorsque vous ecrivez un formulaire, tous les items
ont un tag NAME . Quand l’utilisateur place des
données dans ces items (ie répond aux
questionnaire), cette information est encodée sous
la forme d’un flux de données
 Un flux de paires nom=valeur séparées par le
symbole &
 Les espaces sont changés en + et certains
caractères sont codés en héxadécimal
Cours Internet Gérard
Rozsavolgyi 2006-2007
23
Langages utilisés
 Shells
UNIX : bash, sh, etc.
 C, C++
 Perl
 Java
 PHP
 ASP (VBScript)
 Python
Cours Internet Gérard
Rozsavolgyi 2006-2007
24
Limitations des scripts CGI



Limitations : Quand un serveur reçoit une requête
pour un programme CGI, création d’un processus
pour exécuter le passage de paramètres via des
variables d’environnement ou via l’entrée standard
 demande du temps et des ressources au serveur,
limitant le nombre de requêtes pouvant etre traitées
concurrement
Le processus ainsi créé n’aura de plus pas la faculté
de communiquer avec le serveur (par exemple pour
écrire des “logs”) ou d’utiliser d’autres ressources du
serveur, simplement
Cours Internet Gérard
Rozsavolgyi 2006-2007
25
Active Server Pages
C’est la technique Microsoft pour générer
dynamiquement des pages Web
 Les pages HTML contiennent des morceaux de
code écrite en VBScript ou en JavaScript. Ce
code est lu puis exécuté par le serveur Web
avant d’envoyer sa page au client
 Site :
http://www.microsoft.com/workshop/server/defau
lt.asp

Cours Internet Gérard
Rozsavolgyi 2006-2007
26
PHP (I)
 Un
langage de script, interprété
 Multi-plateformes
 Spécialisé dans la génération de
code, en particulier HTML
 Fichiers séparés (.php) ou code
inséré dans une page HTML entre
les balises <? et ?>
Cours Internet Gérard
Rozsavolgyi 2006-2007
27
PHP (II)
L’interpréteur lit un fichier source .php puis génère
un flux de sortie avec les règles suivantes :
- toute ligne située à l’extérieur d’un bloc PHP (
entre <? et ?>) est recopiée inchangée dans le
flux de sortie
- le code PHP est interprété (et génère
éventuellement des résultats intégrés eux aussi
au flux de sortie)
- éventuels messages d’erreurs retrouvés
également dans le flux de sortie.
Cours Internet Gérard
Rozsavolgyi 2006-2007
28
PHP (III)

Créateur : Rasmus Lansdorf, 1994 pour
analyser les connexions sur son site Web
 Personal Home Pages ou Hypertext
PreProcessor
 Syntaxe proche du C, peu structuré mais
dispose de la possibilité de définir des fonctions
et des classes
 Beaucoup d’évolutions et d’enrichissements du
langage depuis. (V1.0  V 5.x)
 Grand succès, beaucoup de code libre
disponible.
Cours Internet Gérard
Rozsavolgyi 2006-2007
29
PHP (IV) formulaire.php
<HTML> <HEAD><TITLE>
Test Formulaire PHP </TITLE></HEAD>
<BODY>
<FORM action= formRes.php method=GET>
<input type = text length=30 maxlength=30
name=“nom”>
<P>
<input type=submit value=“Envoyer”>
</FORM></BODY></HTML>
Cours Internet Gérard
Rozsavolgyi 2006-2007
30
PHP (V) formRes.php
<BODY>
<H1>Bonjour, <? echo $nom ?></H1>
<P>
Votre nom est stocké dans la variable
$nom
dont le type est <? echo gettype($nom)
?>
</BODY>
Cours Internet Gérard
Rozsavolgyi 2006-2007
31
Server-Side JavaScript

Technique netscape aussi appellée SSJS
.
 Langage : JavaScript
 Les pages sont précompilées pour
améliorer les performances
 Site :
Http://developper.netscape.com/tec/javas
cript/ssjs.html
Cours Internet Gérard
Rozsavolgyi 2006-2007
32
Java Servlets
Java “côté serveur”
 Extensions puissantes, modulaires,
fiables, sécurisées et portables aux
capacités du serveur
 Remplacent les scripts CGI
 Implémentation de référence : Tomcat (4.x)
qui peut aussi fonctionner en collaboration
avec Apache.

Cours Internet Gérard
Rozsavolgyi 2006-2007
33
Intérêt des servlets




Puissance : les servlets peuvent utiliser toute la puissance
du langage Java en réseau, accès aux URL, multithreading,
manipulation d’images, compression de données,
sérialisation d’objets, connection aux bases de données et
RMI
Efficacité et robustesse : essentiellement parce que les
servlets sont éxécutés dans le cadre de threads, plus
“légers”, plus aisés à manipuler, avec des capacités de
communications bien meilleures que les processus
classiques
Sécurité : de part la robustesse du langage Java(typage
fort, pas de manipulations de pointeurs, exceptions, GC,
SecurityManager…)
Intégration : Coopération plus aisée et plus étroite avec le
serveur. (Authentification…)
Cours Internet Gérard
Rozsavolgyi 2006-2007
34
Extensions et évolution future
L’API Servlet est déstinée à être
facilement extensible
 On peut générer complètement une page
Web à l’aide d’une servlet
 On peut ajouter des SSI (Server Side
Include) a une page statique à l’aide du
tag <servlet>
 Sun développe une technique semblable
aux ASP de Microsoft appelée
JavaServerPages
Cours Internet Gérard

Rozsavolgyi 2006-2007
35
L’API Servlet (III)
Spécification 2.3 de Sun
 Implémentation de référence : Tomcat
4.0
 HTTP 1.1
 filtrage, réecriture d’URL’s, etc.
Cours Internet Gérard
Rozsavolgyi 2006-2007
36
Exemple: formulaire et servlet

<HTML>
<HEAD>
<TITLE>Formumlaire avec servlet</TITLE>
</HEAD>
<BODY>
<FORM METHOD=GET ACTION=“/servlet/Hello”>
Quel est votre nom, s’il vous plaît ?
<INPUT TYPE=TEXT NAME=“nom”><P>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
Cours Internet Gérard
Rozsavolgyi 2006-2007
37
Exemples
 Une
Servlet Java simple : Hello.java
 ServerSideInclude : CurrentTime.java
 Un Servlet avec init( ) et destroy( ) :
Compteur.java
Cours Internet Gérard
Rozsavolgyi 2006-2007
38
Autres protocoles
Internet/Intranet







POP : Gestion du courrier sortant (port 110,
USER, PASS, LIST, RETR i, QUIT)
SMTP : Gestion du courrier sortant (port 25 ,
helo, mail, rcpt, data et quit )
SNNTP (Gestion des « news »)
FTP (File Transfer Protocol, transfert de fichiers)
TFTP (Trivial File Transfer Protocol)
UDP (Universal Datagram Protocol, Protocole
très basique sans AR)
LDAP (Lightweight Directory Access Protocol,
gestion d’annuaire de ressources hétérogènes)
Cours Internet Gérard
Rozsavolgyi 2006-2007
39
Bibliographie
 Webmaster
in a nutshell. Ed. O’Reilly
 w3c.org
 isoc.org
 nic.fr
 Java
Enterprise in a nutshell. Ed. O’Reilly
Cours Internet Gérard
Rozsavolgyi 2006-2007
40
Téléchargement