La Programmation web peut prendre différentes formes : de la simple page statique à la page dynamique avec connexion à une base de données. Nous allons tracer ici un bref aperçu de différentes technologies possibles dans la programmation côté client ou côté serveur.
Toute page web comprend une base de langage HTML ou XHTML. Il s'agit d'un langage de balisage qui définit essentiellement la structure de la page web (titres, tableaux, paragraphes, etc.).
C'est un langage qui permet de créer des hyperliens, à savoir des liens d'un document à un autre ou d'un endroit d'un document à un autre endroit du même document.
Au départ ce langage ne définissait que la structure de la page mais très vite se sont rajoutées des balises (ou tags) qui s'occupaient de mettre en forme le document (mise en gras, en italique, choix d'un police de caractère, ...).
Depuis sa version 4, le langage HTML s'accompagne des CSS (Cascading Style Sheets - Feuilles de style en cascade) qui sont des styles qui se chargent la mise en forme de la page.
Le XHTML est une évolution du HTML basée sur XML.
Une page web créée en HTML est totalement statique et n'offre aucune possibilité d'interaction avec le visiteur. Chaque page doit être créée au préalable et doit être manuellement mise à jour.
Concernant l'aspect dynamique, seuls deux tags HTML ( et mais qui ne sont pas compatibles avec tous les navigateurs webs) et quelques fonctionnalités des CSS permettent, à ce stade, de créer un peu de dynamisme dans la page (ex. changement de couleur lors d'un survol).
A propos de l'interactivité, le langage HTML permettra uniquement de créer le layout d'un formulaire d'interaction avec le visiteur. Il permettra de définir les paramètres d'une action et de renvoyer les données du formulaire vers un 'système' qui gèrera celles-ci mais ne permet pas de définir l'action elle-même.
Il faut donc autre chose pour ajouter de l'animation ou de l'interactivité dans la page web.
Le langage de balisage XML peut également servir de base à une page web. Le fichier XML contiendra le contenu de la page web. Ce fichier sera lié à un fichier XSL (Feuilles de style XML) qui mettra en forme les données du fichier XML.
La plupart du temps, la page web ne sera pas basée sur un fichier XML natif mais celui-ci sera généré dynamiquement par un des langages de programmation web ci-dessous.
Les objets ne fournissent pas toutes les solutions aux besoins d'interactivité et de dynamisme des sites ou sont parfois lourds à mettre en place. Il est possible alors de passer à de la programmation permettant une meilleure interaction avec la page HTML.
Quand le visiteur demande une simple page HTML (avec ou sans objets) en tapant une adresse ou URL, le serveur web lui renvoie simplement le contenu de la page demandée, c'est le navigateur web qui interprète le contenu HTML et les plug-ins qui interprètent les objets, en demandant à leur tour le contenu des objets au serveur web.
Si du code, côté client, est inséré dans la page, le serveur web renverra également la page au client, y compris le code. C'est donc, à nouveau le navigateur web qui doit interpréter le code et faire ce que le code demande.
La programmation côté client sera utilisée essentiellement dans le cas de validation de formulaires (champs obligatoires, petits calculs, ...) et dans la création de petites animations (menus déroulants...).
La programmation côté client utilise des langages de scripts. À la différence d'autres langages de programmation, ces langages ne sont pas compilés. Ils sont interprétés par le navigateur web du visiteur, et leur syntaxe est moins stricte que celle des langages de développeurs (variables non-typées a priori, le point-virgule à la fin des instructions est optionnel...).
La programmation côté client est légère et relativement simple à implémenter (syntaxe pas trop complexe).
Le code est envoyé tel quel au client, et donc visible par celui-ci (s'il regarde les sources de sa page) et donc peu sécurisé. Le bon déroulement du programme dépend entièrement du navigateur du client, de sa configuration et de son niveau de sécurité.
Il n'est donc pas question ici de lier le site web à une base de données.