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