Débuter en HTML

par Daniel Le Gléau, Enst de Bretagne

Ce document s'inspire très largement du NCSA's Beginner's Guide to HTML

Sommaire


Quelques Définitions

WWW
World Wide Web (Web, en raccouci).
SGML
Standard Generalized Markup Language
standard de description de langage utilisant des "marques" ou balises.
DTD
Document Type Definition
langage conforme à SGML.
HTML
HyperText Markup Language
HTML est un SGML DTD. En clair, HTML est un ensemble d'éléments (matérialisées par des balises) définissant la structure des documents du World Wide Web.

Les marques ou balises

C'est un élément de structure du document. Il est matérialisé par un couple : le début et la fin de l'élément de structure

<ELEMENT> texte..... </ELEMENT>


Créer un document HTML

Un document HTML est un document au format TEXTE (ASCII) et peut être créé par n'importe quel éditeur.

Sur quelques sytèmes, il existe cependant des éditeurs HTML :

Ces éditeurs permettent de visualiser directement (WYSIWYG) les documents écrits en HTML.

Des filtres permettent de traduire un fichier d'un format donné vers un fichier HTML

Exemples

Il est cependant toujours possible de visualiser un document HTML :

A partir d'un browser Web en chargeant le document ( Option Open Local dans le File menu)

Après toute modification du document dans l'éditeur (et sauvegarde), l'option Reload reflètera le changement.


Le premier document HTML

<HTML>
<HEAD>
<TITLE>Mon premier document</TITLE>
</HEAD>
<BODY>
<H1>Mon premier document</H1>
Bienvenue dans le WWW 
<P>C'est un paragraphe.</P>
<P>Ceci en est un autre</P>
</BODY>
</HTML>
Ce qui rend :

Mon premier document

Bienvenue dans le WWW

C'est un paragraphe.

Ceci en est un autre

Remarques


Les liens avec d'autres documents

La puissance et la notoriété d'HTML vient de la possibilité d'établir un lien entre des mots d'un document (ou d'une image) vers un autre document.

Le browser mettra en évidence ces mots (généralement par une couleur et/ou un soulignement) pour indiquer qu'il s'agit d'un lien hypertexte.

Pour insérer une ancre dans un document :
  1. Signaler le début de l'ancre par <A (il y a un espace après le A)
  2. Indiquer le document qui sera lié avec le paramètre
    HREF="document" suivi du caratére >
  3. Saisir le texte qui servira de lien hypertexte
  4. Terminer la balise de l'ancre </A>.
<A HREF="sm.html">Saint-Mathieu</A>

Le mot "Saint-Mathieu" est le lien hypertexte vers le document sm.html, lequel est situé dans le même répertoire que le document initial.

Pour relier des document situés dans des répertoire différents, il faudra préciser le chemin relatif vers le document d'arrivée

<A HREF="phares/sm.html">le phare de Saint Mathieu </A>

Les chemins utilisent la syntaxe d' UNIX.

Chemins Relatifs :
les documents sont référencés par rapport au document
Chemins Absolus :
les documents sont référencés par rapport à la "racine" du serveur

Les liens relatifs sont préférables

  1. Ils sont plus courts à écrire!
  2. Si l'ensemble des documents est déplacé, les liens hypertexte restent valides.

Liens vers un paragraphe d'un autre document

Une ancre peut faire référence à un paragraphe d'un autre document HTML. Pour cela, il faut en premier, marquer le paragraphe du document qui sera lié (mot-clé NAME):

 <NAME ="A;1.3">Paragraphe 1.3</A>

Ensuite créer, dans le document d'origine, le lien vers le paragraphe, en y incluant, le nom du document et la marque du paragraphe, séparé par le caractère #

<A HREF = "document.html#A1.3">lien</A> vers le paragraphe A1.3 de document.

Liens à l'intérieur d'un document

Méthode identique que précédemment, sans indication du nom du document.
<A HREF = "#A1.3">lien</A> vers le paragraphe A1.3

Uniform Resource Locator

World Wide Web utilise les Uniform Resource Locators (URL) pour définir l'adresse des documents sur d'autres serveurs.

Une URL précise le protocole utilisé (par exemple gopher, WAIS), l'adresse du serveur, et la localisation du document.

La syntaxe générale

protocole://serveur[:port]/chemin/document

protocole peut prendre les valeurs suivantes :

file
le document est sur votre machine ou sur un serveur FTP anonyme
http
le document est sur un serveur World Wide Web
gopher
le document est sur un serveur Gopher
WAIS
le document est sur un serveur WAIS
news
le document est sur un newsgroup
telnet
une connexion interactive pourra être lancée
Le numéro de port n'est à préciser que si le serveur n'utilise pas les valeurs standards.

Exemple, le lien vers le NCSA's Beginner's Guide to HTML primer se fera avec l'URL suivante :

<A HREF = "http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html">NCSA's Beginner's Guide to HTML</A>

NCSA's Beginner's Guide to HTML


Structures d'un document HTML

Les Hiérarchies

<H1>Hiérarchie niveau H1</H1>
<H2>Hiérarchie niveau H2</H2>
<H3>Hiérarchie niveau H3</H3>
<H4>Hiérarchie niveau H4</H4>
<H5>Hiérarchie niveau H5</H5>
<H6>Hiérarchie niveau H6</H6>

Hiérarchie niveau H1

Hiérarchie niveau H2

Hiérarchie niveau H3

Hiérarchie niveau H4

Hiérarchie niveau H5
Hiérarchie niveau H6

Les listes

Les listes de type non ordonnée <UL>

<UL>
<LI>L'annuaire de Télécom Bretagne
<LI>L'annuaire des élèves de  Télécom Bretagne
<LI>Les listes de diffusion définies sur le domaine de Télécom Bretagne (accès local)
</UL>

Les listes de type ordonnée <OL>

<OL>
<LI>Serveur FTP
<LI>Les rapports de recherche de Télécom Bretagne (WAIS) au format postscript
<LI>Lire les News
<LI>Serveur Gopher
</OL>
  1. Serveur FTP
  2. Les rapports de recherche de Télécom Bretagne (WAIS) au format postscript
  3. Lire les News
  4. Serveur Gopher

Les listes de types imbriqués <MENU> <UL>

<H2>Outils de navigation</H2>
<MENU>
<UL>
<LI>Recherches sur Internet via  Archie
<LI>Autres serveurs français
<LI>Découvrir le WWW
</UL>
</MENU>

Outils de navigation

Listes descriptives

<DL COMPACT>
<DT>la balise <DT> </DT>
<DD>La balise <DT> met en exergue l'information 
décrite par la balise <DD>.</DD>
<DT>la balise <DD> </DT>
<DD>texte d'informations sur l'objet mis dans la balise<DT></DD>
</DL>
la balise <DT>
La balise <DT> met en exergue l'information décrite par la balise <DD>.
la balise <DD>
texte d'informations sur l'objet mis dans la balise <DT>

Les styles de paragraphes

Le texte préformaté

Défini par le mot HTML PRE

Le texte compris entre <PRE> et </PRE> conserve, lors de l'affichage, les retours à la ligne, les blancs, tels qu'ils ont été saisis dans le document source. La police de caractères utilisée est non proportionnelles.

<PRE>
           On voyait les chevaux d'la mer
           Qui fonçaient la têt' la première
           Et qui fracassaient leur crinière
               Devant le casino désert
</PRE>
           On voyait les chevaux d'la mer
           Qui fonçaient la têt' la première
           Et qui fracassaient leur crinière
               Devant le casino désert

La citation de texte

L'élément BLOCKQUOTE est utilisée pour la citation de texte.

<BLOCKQUOTE> Leur chant triste entrait dans mon être<BR>
Et je croyais y reconnaître <BR>
Du Rainer Maria Rilke
</BLOCKQUOTE>

Leur chant triste entrait dans mon être
Et je croyais y reconnaître
Du Rainer Maria Rilke

Les Images

<IMG ALT="" SRC="homepage.gif"><P>
<IMG ALT="" ALIGN="bottom" SRC="homepage.gif">Texte align&eacute; bas<P>
<IMG ALT="" ALIGN="MIDDLE" SRC="homepage.gif">Texte align&eacute; milieu<P>
<IMG ALT="" ALIGN="TOP" SRC="homepage.gif">Texte align&eacute; haut<P>
Position par défaut

Texte aligné bas

Texte aligné milieu

Texte aligné haut


Les adresses

<ADDRESS>
Daniel Le Gléau <BR>
Daniel.Legleau@enst-bretagne.fr<BR>
Télécom Bretagne BP 832, 29 285  BREST CEDEX (FRANCE)
</ADDRESS><P>
Daniel Le Gléau
Daniel.Legleau@enst-bretagne.fr
Télécom Bretagne BP 832, 29 285 BREST CEDEX (FRANCE)

Les caractères

Styles de caractères

Les styles physiques

<B>
caractères gras
<I>
caractères en italiques
<TT >
caractères type machine à écri re
<U>
caractères soulignés

Les styles Logiques

<DFN>
Pour un mot devant être défini
<EM>
Pour un texte mis en emphase simple
<CITE>
Pour les titres de livres, les citations ...
<CODE>
pour le listing d'un programme...
<KBD>
Pour une entrée au clavier
<SAMP>
Messages en provenance d'un calculateur
<STRONG>
Pour un texte en emphase forte
<VAR>
pour désigner une variable


Les caractères accentués et les symboles

Un document HTML est écrit en code ASCII 7 bits, ce qui pose problème pour les caractères accentués. Les mots HTML & et le point virgule (;) permettent l'affichage de ces caractères.

Il faut faire précéder chaque mot clef de & et le faire suivre d'un point virgule (;).

Exemple :

Une liste des caractéres accentués se trouve ici.


Les programmes

Toutes les informations accessibles sur le réseau WWW n'existent pas uniquement sous forme de fichier. Il est également possible d'exécuter des programmes. A chaque requête d'un utilisateur, le programme est exécuté et renvoie un document.

Le principe est simple: Le programme reçoit des paramètres et en retour affiche des informations sur sa sortie standard qui est redirigée vers le client.


Faire appel à un programme

Pour exécuter un programme, il faut des commandes dans un document HTML. Cela peut se faire par un lien direct ou bien par un formulaire :

Exécution par un lien

Pour créer un lien vers un programme il suffit d'inclure une ligne de commande de ce type dans un document HTML :

<A HREF = "adresse_du_programme/nom?parametre1=valeur1&parametre2=valeur2> exécute le programme </A>

Cette commande crée un lien classique : le fait de cliquer sur les mots "exécute le programme" fait sauter le client vers un autre document. La seule différence est que ce document affiché sera le résultat d'exécution d'un programme.

L'adresse_du_programme est son adresse au sens URL, à savoir, soit le chemin d'accès dans le serveur courant, soit une adresse URL complète.

nom est le nom du fichier programme. Ce fichier doit être exécutable et être placé dans un répertoire autorisé en exécution par le serveur sous lequel il est placé.

Le nom du programme est suivi dans le cas de la méthode GET d'un point d'interrogation ? qui indique qu'il est suivi d'un ou plusieurs paramètres. Les paramètres sont séparés par le signe &. Un paramètre est constitué de son nom, suivi du signe = et de la valeur qui lui est affectée. Il est à noter que si cette valeur comporte plusieurs mots les espaces entre ces mots sont remplacés par des +.

Exemple d'appel :

Vous pouvez connaître mon <A HREF="http://www.ici.fr/cgi-bin/adresse?prenom=Tryphon &nom=Tournesol> adresse électronique</A>.

Dans cet exemple, si un utilisateur clique sur les mots "adresse électronique", il exécutera le programme appelé adresse. Ce programme se trouve sur le serveur www.ici.fr qui est un serveur au protocole HTTP. Il est placé dans le répertoire "cgi-bin" sous la racine de ce serveur. Les paramètres ont pour nom : nom qui se voit affecté la valeur "Tournesol" et prenom qui prend pour valeur "Tryphon". L'utilisateur recevra une page contenant le résultat en sortie du programme; par exemple l'adresse électronique de la personne dont le nom et prénom sont passés en paramètres.

Exécution par un formulaire

Pour passer des arguments, il est également possible d'utiliser un formulaire. Le formulaire offre à l'utilisateur des zones de textes, boites de dialogues, listes déroulantes et autres boutons à cliquer identiques à ceux des interfaces de types X-Windows ou Windows.

La création de formulaires dans un document HTML se fait par l'utilisation de la commande <FORM> :

<FORM ACTION="le_programme" [METHODE=mot_clef]>

</FORM>

mot_clef est soit GET soit POST.

Avec la méthode GET, les paramètres sont transmis derrière l'URL comme décrit à ci-dessus.

Avec la méthode POST ils sont envoyés sur l'entrée standard du programme. Cette méthode est recommandée quand le nombre de paramètres est important pour éviter que la ligne de commande ne soit tronquée.

Entre <FORM ...> et </FORM>, on peut utiliser un certains nombre d'objets :

Dans tout formulaire, il faut obligatoirement placer un bouton de type SUBMIT. C'est en effet par lui que l'utilisateur soumet sa requête. Cette requête sera envoyée au programme dont l'URL est donné après ACTION dans la commande <FORM...>.

Exemple de formulaire

<html>
<head>
<title>Un exemple simple de formulaire</title>
</head>
<body>

<H1>Exemple simple de formulaire utilisant l'interface CGI</H1>
<p>
Ceci est un formulaire simple qui illustre l'utilisation de
la bibliothèque de fonctions CGI permettant de traiter
les informations saisies dans les zones de dialogue.
<hr>
<form method="post" action="formulaire.cgi">
<H2>Questionnaire</H2>
Quel est votre prénom ? <input name="prenom">
<p>
Quel est votre nom ? <input name="nom">
<p>
Quelle est votre couleur favorite ?
 <select name="couleur">
 <option selected>blanc
 <option>jaune
 <option>orange
 <option>rouge
 <option>vert
 <option>bleu
 <option>violet
 <option>noir
 </select>
<p>
Aimez vous l'informatique ?
<input type="radio" name="choix" value="oui" checked> Oui
ou
<input type="radio" name="choix" value="non"> Non
<p>

Cliquez sur <input type="submit" value="Valider"> pour soumettre votre requ&ecir
c;te.,
 sinon <input type="reset" value="Annuler">
</form>
<p>
<address>Philippe Dax / dax@inf.enst.fr</address>
$Date: 20/09/1995 $
</body>
</html>


Ecrire un programme

L'écriture d'un programme exécutable sur le WWW est une chose des plus simples. Il peut être écrit dans n'importe quel langage ou système d'exploitation. Le programme doit comprendre au moins ces trois étapes :
  1. Récupération des paramètres passés au programme et leur interprétation.
  2. Réalisation de l'objet même du programme à partir des paramètres.
  3. Affichage du résultat sur la sortie standard. Cette sortie est automatiquement redirigée vers le client qui a effectué la requête.
Le résultat affiché peut être du texte simple, il est cependant intéressant de formater le texte suivant la syntaxe HTML. Il sera interprété par le client comme un document HTML normal.

Exemple

Le programme appelé par le formulaire précédent est écrit en C :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cgic.h>

#define TITRE "R&ecaute;sultat du questionnaire"

int cgiMain(void)
{

   char prenom[40], nom[40], couleur[40], choix[40];    /* parametres */

   cgiFormStringNoNewlines("nom",nom,41);
   cgiFormStringNoNewlines("prenom",prenom,41);
   cgiFormStringNoNewlines("couleur", couleur, 41);
   cgiFormStringNoNewlines("choix",choix,41);

   cgiHeaderContentType("text/html");    /* en-tete MIME: type de document */
   fprintf(cgiOut, "<html>\n");
   fprintf(cgiOut, "<head>\n");
   fprintf(cgiOut, "<title>%s</title>\n", TITRE);
        fprintf(cgiOut, "</head>\n");
        fprintf(cgiOut, "<body bgcolor=\"#dddddd\">\n");
        fprintf(cgiOut, "<h1>%s</h1>\n", TITRE);
        fprintf(cgiOut, "<hr>\n");

        /*
         * ici commence le traitement
         * ATTENTION: ce processus s'execute sous le controle du serveur httpd
         *            avec l'uid de nobody et non celui de l'utilisateur.
         */
        fprintf(cgiOut, "<b>%s %s</b>, dont la couleur favorite est <b>%s</b>, v
ous avez répondu <b>%s</b> à la question<p>\n",
                prenom, nom, couleur, choix);

        /*
         * ici se termine le traitement
         */
        fprintf(cgiOut, "<hr>\n");
        fprintf(cgiOut, "</body>\n");
        fprintf(cgiOut, "</html>\n");

        return 0;

}


Les variables d'environnement

W3 utilise CGI (Common Gateway Interface) qui permet d'utiliser dans un programme les variables d'environnement suivantes : Dans le cas de la méthode GET les paramètres sont transmis dans la variable d'environnement QUERY_STRING.

Dans le cas de la méthode POST, ils sont disponibles sur l'entrée standard.


Les images réactives

Elles peuvent être interprétées par le serveur ou par le client. Pour le premier cas, on trouvera toute la documentation sur les images réactives, appelées "imagemap" dans le monde WWW, à l'adresse :

http://wintermute.ncsa.uiuc.edu:8080/map-tutorial/image-maps.html

Création de l'image

La première étape est la création de l'image. C'est soit une image digitalisée, soit une image crée à partir d'un logiciel de dessin. L'image peut être au format gif ou jpeg.

Création de la réactivité pour le client

Il faut déclarer des zones dans la page html de la façon suivante :
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
  <head>
    <title>Enst</title>
  </head>

  <body>
      <h1>Enst</h1>
      <img src="enst.gif" usemap="#enst">
      <hr>
  
      <map name="enst">
         <area shape="rect" coords="5,1,183,173" href="http://www.infres.enst.fr/">
         <area shape="rect" coords="8,177,432,391" href="http://www.enst.fr/">
         <area shape="rect" href="enst.html" coords="0,0,435,396">
      </map>
  </body>
</html>
On crée des liens sur les 2 premiers rectangles et le 3e correspond à une zone par défaut qui pointe sur la page elle-même.

Liste des caractères accentués et des symboles