Différents types de serveur
-
Apache (le plus répandu, Unix/NT)
-
Microsoft Information Server (NT)
-
Netscape Server (Unix, Windows NT)
-
NCSA
-
CERN (dépassé)
-
Roxen (Unix, celui utilisé à l'ESSI)
-
Jigsaw (java, portable, W3C)
-
MacHTTP (Mac)
-
WebStar (95, NT)
-
etc...
-
Voir :
Un exemple : le serveur Apache
-
Gratuit (license GNU)
-
Modulaire
-
Simple (!)
-
Efficace (pas de forking furieux)
-
Robuste (c'est le plus utilisé)
-
Développement actif.
-
Voir :
Rôle d'un serveur (ici Apache)
-
Transformation de l'URL en fichier ou en script
-
Vérification d'identité
-
Le client est-il qui il prétend être ?
-
Vérification d'accès
-
Le client est-il autorisé à effectuer cette requête
?
-
Détermination de :
-
Type MIME des données
-
Taille des données
-
Language,
-
etc...
-
Envoi de la réponse au client
-
Mise à jour des fichiers de logs
-
Traitements évolués (interprète perl, accès
à des BDs, etc...)
Exemple de configuration (Apache)
-
httpd.conf (avant, il y avait aussi srm.conf et access.conf)
-
mime.types (ou TypeConfig dans http.conf))
-
Certains serveurs utilisent un découpage différent..ou une
interface graphique
-
3 fichiers de logs (par défaut)
Que peut faire un serveur
-
Servir une page en ajoutant des entêtes appropriés
-
Servir une page telle quelle
-
Exécuter un script et renvoyer le résultat comme une page
-
Exécuter un script et renvoyer le résultat tel quel
-
Scripts dits nph- (Non Parsed Header)
-
Roulettes URL et codes de réponse autre que 200 OK.
-
Interpréter des instructions encodées dans des tags HTML
spéciaux
-
Langage de requête ASP de Microsoft interprété" par
le serveur Information Server sous NT, par exemple pour faire des requêtes
à une base de données.
-
Javascript interprété au niveau serveur (Netstcape FastTrack
et Enterprise Server)
-
Langage de requête pour Msql (module Apache)
-
Perl (module)
Que peut faire un serveur (2)
-
Vérifier la machine d'origine (ou le dernier proxy sur la chaîne)
-
Vérifier le mot de passe et un login
-
Construire une page au vol avec des ordres spécifiques
Que peut faire un serveur (3)
-
reconnaître les entêtes de requêtes et servir des pages
différentes suivant le client ou ses préférences
-
Lister des directories
-
Encrypter les données et sécuriser les transactions
Que peut faire un serveur (4)
-
Répondre différemment suivant le nom de la machine
-
Une même machine peut porter plusieurs adresses IP (interfaces virtuelles)
-
Une même machine peut porter plusieurs noms, même si elle n'a
qu'une adresse IP
-
Les serveurs récents savent gérer ces cas de figure : une
seule machine avec une seule carte réseau et une seule adresse IP
peut héberger plusieurs serveurs WWW virtuels
-
Par exemple : répondre à http://www.toto.fr et http://www.tata.fr
en renvoyant des pages différentes et en maintenant des logs et
des configs propres à chaque serveur virtuel.
-
Voir http://www.apache.org/docs/vhosts/index.html