Le protocole HTTP qui gère la transmission des pages web autorise l'échange de données dans les deux sens. Néanmoins, dans le cas de la simple consultation de sites, le transfert d'informations a surtout lieu du serveur vers le navigateur: des textes, des images, des fichiers divers lui sont expédiés en grand nombre (ce sont les pages consultées). En revanche, le navigateur n'envoie guère au serveur que de toutes petites quantités d'information: essentiellement les adresses URL des pages que l'internautes désire consulter.
Vous savez cependant qu'il existe des sites web où vous êtes invité à fournir vous-même des quantités d'informations plus importantes telles que vos références personnelles pour l'inscription à un club ou la réservation d'une chambre d'hôtel, votre numéro de carte de crédit pour la commande d'un article sur un site de commerce électronique, votre avis ou vos suggestions, etc.
Dans ce cas là, vous vous doutez bien que l'information transmise doit être prise en charge, du côté du serveur, par un programme spécifique, appelé application web. Même si, à l'heure actuelle, la plupart des applications web sont réalisées à l'aide de scripts PHP, nous verrons qu'elle peuvent entièrement être développées en Python. Les pages destinées à accueillir les informations à transmettre à l'application web sont appelées des formulaires. Elles peuvent être dotées de différentes commandes d'encodage (champs d'entrée, cases à cocher, boîtes de listes, etc), afin que le navigateur puisse soumettre au serveur une requête accompagnée d'arguments. Le serveur pourra alors confier ces arguments à l'application web et, en fonction du résultat du traitement, renvoyer une réponse adéquate à l'internaute sous la forme d'une nouvelle page web.
Le but de cette section n'est point d'aborder la réalisation d'une application web côté serveur puisque cette partie est prévue dans un chapitre ultérieur mais plutôt d'étudier la construction de formulaires en HTML et leur mise en page à l'aide de tableaux.