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.