Exemple : sur ma tablette, je consulte Wikipedia, j'envoie ma demande vers wikipdia.fr.
Plusieurs serveurs interviendront dans une telle requête :
wikipedia.frwikipedia.fr. Sur ce réseau local, plusieurs machines et plusieurs serveurs concourent à faire fonctionner le site.http://wiki.goupill.fr?id=nsi:startwiki.goupill.fr est identifiée comme les nom de domaine et sous-domaine. Une requête vers le serveur DNS est lancée pour connaître l'adresse IP correspondante.51.91.105.102.51.91.105.102 en précisant qu'il demande wiki.goupill.fr?id=nsi:start selon le protocole http.id=nsi:start. Il détermine la réponse qu'il doit faire.Pour rester simple, côté client, il n'y a que le navigateur web.
Comme on le verra plus loin, l'utilisation de JavaScript peut avoir une grande importance côté client et changer la nature des échanges client - serveur.
Le système d'exploitation met à disposition des ports logiciels. On peut les penser comme des prises virtuelles. http est par défaut branché sur le port 80 et https sur le port 443.
On peut configurer le serveur pour qu'il écoute sur le port 5000, par exemple, et alors l'adresse pour atteindre le serveur et être entendu de lui serait http://wiki.goupill.fr:5000?id=nsi:start.
Une machine ordinaire comme un ordinateur de bureau n'est a priori pas un serveur web. Qu'est-ce qui fait qu'une machine devient un serveur web ?
Il faut installer sur la machine un logiciel dont le rôle est de se mettre à l'écoute sur un certain port (80 pour http) pour capter les requêtes http et y répondre. Une fois que ce logiciel est installé, il faut bien sûr du contenu web pour que le serveur ait quelque chose à répondre aux requêtes.
On trouve deux logiciels principaux :
Un serveur web commercial sera une machine faite pour supporter de nombreuses connexions, être alimentée tout le temps… Mais un simple portable ou même un raspberry pi peut être un serveur web car c'est le logiciel installé qui fait le serveur.
Par exemple, le serveur reçoit la requête http://nom.de.domaine/page.
Son fonctionnement le plus ordinaire sera alors :
/page/page.html404.html car 404 est le code d'erreur utilisé dans le cas d'une page qui n'existe pas.On est libre de programmer / configurer le serveur comme on le souhaite.
Exemple : à la réception de la requête http://nom.de.domaine/page, le serveur fabrique un contenu html automatiquement. Il y place
En fabriquant sa page, le serveur est d'ailleurs libre d'utiliser ses propres données et/ou de demander des données à d'autres serveurs. C'est d'ailleurs ce que font les serveurs Google : suite à une recherche, ils produisent des pages contenant des liens vers d'autres sites et des publicités hébergées par d'autres serveurs…
Le navigateur peut lancer plusieurs requêtes pour une même page.
exemple : vous affichez le fichier truc.html contenant la balise <img src="http://images.net/uneimage.png>. Le fichier image n'est pas contenu dans truc.html.
Le navigateur, au moment d'afficher truc.html va lire la balise <img src="http://images.net/uneimage.png> et automatiquement lancer une requête pour obtenir le fichier image et l'afficher à l'endroit voulu.
Naturellement, le navigateur fait de même pour toutes les autres images et les nombreux fichiers pouvant intervenir dans une page (scripts, images, feuilles de styles, favicon…)