Introduction aux principes de la technologie Internet

Transcription

Introduction aux principes de la technologie Internet
1
Introduction aux principes
de la technologie Internet
Je suis impliqué dans le commerce électronique depuis un bon
bout de temps : j’ai vendu des Casios dans les rues de New York !
Il y a à peine quelques années, le commerce de marchandises impliquait de multiples intermédiaires. Par exemple, pour acquérir ce livre, vous avez sans doute dû vous rendre dans
une librairie. Pour acheter des vêtements, il faut presque obligatoirement se rendre dans un
centre commercial ou dans une boutique. Mais tout cela change désormais ! Les commerces pénètrent maintenant jusque dans votre domicile. Nombre d’entreprises ont, avec
succès, développé une alternative au commerce traditionnel, par la voie électronique. Nous
sommes entrés dans l’ère du commerce en ligne. Grâce à tous les "point-com" tels
Amazon.com et etrade.com, vous pouvez maintenant commander des livres et gérer vos
actions, confortablement assis devant votre ordinateur.
Plusieurs raisons expliquent l’engouement des entreprises pour Internet. Une boutique sur
le Web est ouverte vingt-quatre heures sur vingt-quatre, accessible à des visiteurs situés aux
quatre coins du monde, et offre un service personnalisé aux consommateurs.
Mais, pour rendre cela possible, divers systèmes logiciels complexes ont dû intervenir. Ce
livre vous familiarisera avec un certain nombre de langages et de technologies qui peuvent
être utilisés pour élaborer des systèmes de commerce électronique. Nous aborderons les
aspects pratiques de ces technologies, et nous montrerons comment elles peuvent être intégrées pour élaborer des systèmes complets.
Les langages et les technologie sont décrits dans des chapitres spécifiques. Un bon nombre
d’exemples, du plus facile au plus complexe, sont présentés, pour vous faire comprendre les
différentes fonctionnalités que vous pouvez exploiter. Les langages abordés incluent le
4
Partie I
HTML, le Java, le JavaScript, le JDBC (Java DataBase Connectivity), le SQL, et le XML.
Des technologies, telles que les bases de données, les serveurs Web, les servlets, sont traitées
en détail.
Nous nous pencherons bien évidemment sur les tous les sujets d’importance, liés à toute
application à caractère commercial, comme la performance et la vérification de carte de
crédit. Nous aborderons également les technologies requises pour sécuriser les sites. SSL,
ainsi que l’utilisation du Java pour la gestion de messages et la signature électronique,
seront notamment traités.
Le livre montre par ailleurs comment une entreprise peut accéder à Internet et commencer
à héberger des applications Web.
Niveau requis
Une connaissance approfondie d’Internet et des technologies afférentes n’est pas requise.
Toutefois, nous supposons que vous savez manipuler les navigateurs Web tels que Netscape
ou Internet Explorer. Si ce n’est pas le cas, procurez-vous au préalable une connexion Internet et familiarisez-vous avec ces outils indispensables.
Le contenu de ce livre est également destiné à des lecteurs ayant quelque expérience en
programmation. Vous serez beaucoup plus à l’aise en feuilletant ce livre si vous avez l’habitude des langages de haut niveau comme C, C++, ou Java.
Ce livre en divisé en quatre parties. Cette introduction, composée d’un seul chapitre, vous
présente le commerce électronique ainsi que quelques termes et concepts relatifs à Internet.
Elle propose également un bref aperçu du contenu des sections suivantes.
La partie II couvre six thèmes, chacun de ses chapitres étant consacré à un langage ou à une
technologie en particulier.
La partie III aborde différentes méthodes de vérification des cartes de crédit, et s’attarde
notamment sur les questions de sécurité et de performance.
La partie IV est consacrée à l’élaboration d’un exemple complet et ce, en appliquant les
technologies abordées dans la partie II. Les principes de conception et les codes correspondants sont présentés. Vous pourrez vous servir de ce code tel quel ou l’adapter à vos
besoins. Vous pourrez également, grâce aux principes fondamentaux exposés, élaborer des
systèmes plus complexes.
Voyons un peu l’ensemble des technologies, des termes et des concepts qui se rapportent
plus particulièrement à Internet, spécialement pour ceux qui souhaiteraient développer des
applications pour le Web. En fait, commençons par une présentation, en quelques paragraphes, de chacune de ces technologies, et voyons comment elles sont reliés les unes aux
Chapitre 1
Introduction aux principes de la technologie Internet
5
autres. Cela vous introduira doucement aux chapitres suivants, où ces questions sont débattues de façon approfondie.
Sites Web et navigateurs
Un site Web est un portail d’information offert au monde entier, ou à un ensemble sélectionné
de personnes. Les sites Web peuvent contenir des informations de toutes sortes : données
concernant une société, curriculum vitae d’un particulier, images du Yosemite National Park,
clips vidéo de Star Wars, etc. La préoccupation est de rendre cette information facilement
accessible aux consommateurs et à tous ceux qu’elle sera susceptible d’intéresser.
De nos jours, il est quasi impossible de n’avoir jamais entendu parler des termes navigateur,
Netscape Navigator et Internet Explorer. Ces interfaces ont fait d’Internet un espace hautement convivial. Les navigateurs vous permettent de surfer sur Internet et de parcourir les
sites Web. Leurs versions graphiques, comme celles de Netscape et de Microsoft, vous
permettent de visualiser et même d’écouter des sites Web complexes, qui contiennent de
l’information dynamique, du son et de la vidéo.
Pages Web et HTML
Un site Web débute… par une page Web. Une page Web est une représentation graphique
de l’information que vous voulez proposer sur votre site, dans un format reconnu par les
navigateurs. Il existe plusieurs navigateurs différents, s’exécutant dans des environnements
matériels hétérogènes, sous des systèmes d’exploitation divers. Les données présentées ne
doivent donc pas être au format spécifique à une plate-forme particulière. Elles seront
plutôt transcrites en un format texte ASCII universel : c’est le HTML (Hyper-Text Markup
Language) qui joue ce rôle unificateur sur Internet. Ce langage vous permet de formater vos
données de sorte qu’elles soient visuellement attrayantes, quel que soit le navigateur avec
lequel elles seront lues.
Le HTML est un langage simple, constitué d’un ensemble spécifique de balises, qui
permettent de définir la présentation des différents éléments d’une page Web. Ainsi, si vous
voulez qu’une section s’affiche en caractères gras, vous débuterez celle-ci avec la balise de
mise en gras, soit <B>. Si vous voulez centrer votre texte, vous devez l’encadrer des balises
<CENTER> et </CENTER>. De la même manière, le HTML vous permet d’insérer des
images et du son dans une page Web. Lorsqu’un navigateur la lit, il interprète ces balises
avant d’en afficher le résultat. Ensuite, il affiche le document, conformément aux instructions contenues dans les balises rencontrées. Tout texte compris entre les balises <B> et
</B> sera ainsi affiché en caractères gras, dans la fenêtre du navigateur.
6
Partie I
Les fichiers HTML ont pour extension ".html" ou ".htm". Le fichier HTML présenté cidessous contient des balises mettant le texte en caractères gras, en italique, et souligné.
Chaque page HTML commence par la balise <HTML>, et se termine par </HTML>. La
portion <BODY> désigne le corps principal de la page. Les balises seront étudiées plus en
détail au Chapitre 2.
<HTML>
<HEAD></HEAD>
<BODY>
<B>Texte en gras</B>
<I>Texte en italique</I>
<U>Texte souligné</U>
</BODY>
</HTML>
Si vous visualisez ce fichier par le biais d’un navigateur, le passage "Texte en gras" sera en
caractères gras ; "Texte en italique" sera en italique, et "Texte souligné" sera souligné.
La Figure 1.1 montre un document sans balises HTML, vu dans un navigateur. La Figure 1.2
illustre bien l’enrichissement généré par les balises.
Figure 1.1
Un document
sans balises HTML.
Chapitre 1
Introduction aux principes de la technologie Internet
7
Figure 1.2
Le document avec
des balises HTML.
Serveurs Web et HTTP
Mais ensuite, comment une page Web devient-elle accessible au navigateur ? Pour faire en
sorte que les diverses pages Web soient disponibles pour tous, vous devez premièrement
placer votre site sur Internet. Vous pouvez louer un espace sur le réseau, en passant contrat
avec un fournisseur d’accès Internet (FAI).
Les FAI disposent sur leurs machines d’un logiciel complexe, que l’on appelle un serveur
Web. Si vous possédez votre propre système, vous devrez y installer un serveur Web et le
lancer.
Ce logiciel se met à l’écoute des "requêtes" que lui soumettent les clients (comme les navigateurs). Les requêtes s’apparentent à ceci : "Je veux voir la page Web dont le nom est
produits.html". Le serveur Web interprète cette requête et entreprend l’action appropriée.
Dans le cas où une page Web est requise, il lit le fichier HTML correspondant et envoie le
contenu au client qui a émis la requête.
Les serveurs Web écoutent les requêtes provenant des clients sur un port particulier d’une
machine. La plupart des serveurs Web ont la capacité de gérer plusieurs requêtes simultanées, permettant ainsi à plusieurs usagers d’être connectés en même temps à un site Web.
Les serveurs Web et les clients ont besoin d’un protocole commun, de façon à pouvoir
communiquer entre eux. Le protocole le plus utilisé est connu sous le nom de HTTP (HyperText Transfer Protocol). Celui-ci détermine notamment la procédure d’authentification
8
Partie I
(handshake) entre le client et le serveur. Lorsqu’un client requiert une page Web, il émet
donc la requête dans un format compatible au HTTP. Le serveur Web, également compatible
HTTP, comprend la requête et, selon le même protocole, renvoie les données au navigateur.
Ce dernier est donc à même de comprendre les données reçues, dont il connaît la longueur,
et toutes les informations complémentaires afférentes.
URL
Une URL (Uniform Resource Locator) est l’adresse d’un fichier sur Internet. Ce fichier
peut être de n’importe quel type supporté par le HTTP : une page Web, un fichier image, un
fichier son, etc. Voici un exemple d’URL :
http://www.javasoft.com
C’est ce que vous devez taper dans votre navigateur pour accéder à la page principale du
site Web Javasoft. Une URL est d’un format spécifique. Elle identifie la machine à laquelle
vous adressez une requête, le port sur lequel le serveur Web écoute sur cette machine, et le
fichier qui vous intéresse. Il existe des fichiers par défaut pour certaines d’entre elles. Voici
le format d’une URL compatible HTTP :
http://<machine>:<port>/<fichier>
Par défaut c’est le port 80 qu’empruntent la plupart des serveurs Web. Si vous n’indiquez
pas de port, le navigateur essaie d’établir une connexion au port 80 de la machine spécifiée.
Quant au <fichier>, il s’agit par défaut de index.html. Si le serveur Web détecte que
<fichier> est manquant lors de la requête d’une URL, il retourne un fichier appelé
index.html, qui se trouve dans le répertoire racine du document.
Formulaires et CGI
Un site Web serait moins attractif s’il ne contenait que du texte et des images statiques. Le
HTML vous permet de rendre votre page Web aussi vivante qu’une application, par son
aspect visuel et interactif. Par l’utilisation de certaines balises HTML, vous pouvez créer
l’apparence d’un formulaire papier, contenant des champs textes, des boutons, des cases à
cocher, et plus encore.
C’est la balise <FORM> qui permet cela, en HTML. Mais, concevoir une page Web qui
ressemble à une application peut paraître d’utilité douteuse si elle ne peut pas se comporter
comme telle ? La réponse est que le développement d’un site Web ne se limite pas au
HTML. Le HTML est parfait à des fins d’affichage ; il est hélas incapable d’assurer la logique d’une application. Ce vide peut être comblé par une application écrite dans un langage
comme le C ou le Unix-Shell, ou encore un script .bat sous DOS. La balise <FORM> du
HTML vous permet de spécifier une application pouvant être exécutée par un utilisateur.
Chapitre 1
Introduction aux principes de la technologie Internet
9
<FORM> peut contenir un bouton spécial appelé Submit (soumission de formulaire) ;
l’utilisateur qui remplit le formulaire peut cliquer sur ce bouton, exécutant ainsi l’application qui lui est associée.
Cette exécution est réalisée par le CGI (Common Gateway Interface), qui est la manière
standard, pour les serveurs Web, de passer une requête d’un navigateur à une application,
et de récupérer les données résultantes. Le CGI fait partie du protocole HTTP.
Ainsi, si votre page Web contient un formulaire, et si l’utilisateur clique sur le bouton de
soumission, l’application spécifiée dans le formulaire est exécutée. Toutes les données du
formulaires sont envoyées à l’application, qui peut alors les traiter. Cette dernière peut
ensuite renvoyer les données à votre navigateur, sous la forme d’une page HTML qui s’y
affiche.
Voici un exemple d’une page HTML contenant un formulaire :
<HTML>
<HEAD></HEAD>
<BODY>
Veuillez entrer les informations vous concernant et appuyer sur le
bouton Envoyer.
Cela exécutera l’application myApplication.exe.
<FORM ACTION=’/cgi-bin/myApplication.exe’>
Nom : <INPUT TYPE=’text’ NAME=’first’ VALUE=’ ’>
Prénom : <INPUT TYPE=’text’ NAME=’last’ VALUE=’ ’>
Adresse : <INPUT TYPE=’text’ NAME=’address’ VALUE=’ ’>
Téléphone : <INPUT TYPE=’text’ NAME=’phone’ VALUE=’ ’>
Fax : <INPUT TYPE=’text’ NAME=’fax’ VALUE=’ ’>
<INPUT TYPE=’submit’ NAME=’submit’ VALUE=’Envoyer’>
</FORM>
</BODY>
</HTML>
La page HTML contient une balise FORM, dans laquelle "ACTION" correspond à "/cgibin/myApplication.exe".
ACTION est un attribut des balises <FORM> spécifiant l’application en arrière-plan qui
doit être invoquée. FORM contient également un bouton de soumission (<INPUT
TYPE=’submit’), dont le nom est "Envoyer." Lorsque le bouton Envoyer est enfoncé, une
requête est envoyée du navigateur au serveur qui héberge l’application "myApplication.exe". Cette requête fait en sorte que l’application soit exécutée et que les résultats
soient renvoyés au navigateur.
10
Partie I
Figure 1.3
La page telle
qu’elle apparaît
dans un navigateur.
Nous avons ajouté quelques champs textes dans le formulaire, où un utilisateur peut taper
des informations. Chaque champ texte est ajouté, en guise de résultat, à une balise qui
ressemble à <INPUT TYPE=’text’... Ensuite, chaque champ texte se voit attribuer un nom.
Par exemple, le champ texte où vous êtes censé taper "Nom" a été dénommé "first" et sa
valeur est laissée vide.
Quand vous appuyez sur le bouton Envoyer, les valeurs de ces variables sont transmises à
l’application, de sorte que celle-ci puisse retrouver l’information saisie par l’utilisateur et
la traiter de façon appropriée. L’application peut tout réaliser, au même titre qu’un exécutable ordinaire. A la fin, un résultat est normalement renvoyé au navigateur. Ce résultat peut
être présenté sous forme d’une autre page HTML.
Plutôt que de spécifier simplement le nom de l’application dans l’attribut ACTION de
l’exemple précédent, nous le faisons précéder de "/cgi-bin/". Lorsqu’une requête est
envoyée, le serveur Web doit en effet être capable de déterminer si elle est destinée à la page
HTML ou à une application, puisqu’elles sont traitées différemment. Dans la configuration
du serveur Web, vous pouvez spécifier que la présence d’un mot clé particulier (comme "/
cgi-bin/") dans la requête signifie qu’elle est destinée à un CGI. L’Annexe A fournit davantage de détails sur les configurations des serveurs Web.