Comme nous l'avions vu dans la section HTML-CSS, les pages web sont des documents au format HTML que l'on peut consulter via un réseau à l'aide de logiciel appelé navigateur. Les pages HTML sont installées dans les répertoires publics d'un autre ordinateur où fonctionne en permanence un logiciel appelé serveur web. Lorsqu'une connexion est établie entre cet ordinateur et celui de l'internaute, le logiciel navigateur de l'utilisateur peut dialoguer avec le logiciel serveur en lui envoyant des requêtes par l'intermédiaire de toute une série de dispositifs matériels et logiciels qui constituent le réseau connectant la machine client à celle du serveur. Les pages web sont alors retournées au navigateur par le serveur en guise de réponse à la requête précédemment envoyée.
Communication entre un serveur web et un navigateur client
Le protocole de communication développé pour le web est le HTTP. Il s'agit d'un ensemble de règles de communication que doivent respecter deux ordinateurs installés sur un même réseau pour s'échanger des informations. Le protocole HTTP gère la transmission des pages web et autorise l'échange des données dans les deux sens.
Dans le cas de la simple consultation de sites, le transfert d'informations a surtout lieu dans un sens, à savoir du serveur vers le navigateur: les pages consultées lui sont transmises sous forme de fichiers HTML. Nous parlons alors de pages statiques, dans la mesure où le contenu de ces pages ne peut être mis à jour automatiquement mais nécessite l'intervention du webmaster du site pour modifier le code source et y ajouter des nouveautés. De telles pages web sont réalisées uniquement à l'aide des langages HTML et CSS.
Envoi d'une page web statique par un serveur web
Dans le cadre de la consultation de pages statiques, le navigateur n'envoie guère au serveur que de petites quantités d'informations, essentiellement sous forme d'adresses URL des pages que l'internaute désire consulter. Néanmoins, il existe des sites web permettant à l'utilisateur de fournir des quantités d'informations plus importantes au serveur web par le biais de formulaires HTML: des références personnelles pour l'inscription à un club ou la réservation d'une chambre d'hôtel, un numéro de carte de crédit pour la commande d'un article sur un site de commerce électronique, un avis, une suggestion, etc. Dans ce cas, l'information transmise est prise en charge, du côté du serveur, par une application web qui se chargera de son traitement et renverra une réponse adéquate à l'internaute sous la forme d'une nouvelle page web. Le contenu de cette page web n'est pas figé mais change en fonction des informations transmises par l'utilisateur via le formulaire. Nous parlons alors de page dynamique dans la mesure où elle a été construite sans l'intervention du webmaster.
Création d'une page web dynamique par une application web
L'objectif de cette section est de vous rendre capable de réaliser des sites web dynamiques à l'aide du module CherryPy offert par le langage Python. Les pages dynamiques seront donc générées par Python puis envoyées au navigateur de la même manière qu'un site statique. Un tel bagage vous donnera ainsi les outils nécessaires à la réalisations de sites contenant les éléments suivants:
Bien entendu, ce ne sont là que des exemples. Il est possible d'aller encore plus loin, tout dépendant de vos besoins. Sachez par exemple que la quasi-totalité des sites de jeux en ligne sont dynamiques.