Comment fonctionnent les sites internet

Vous surfez tous les jours mais vous ne savez pas comment les sites internet fonctionnent.
En effet, l'affichage des sites sur votre navigateur WEB se fait tout seul.
Mais derrière cela, il faut configurer des serveurs, créer les pages, administrer le site internet.

Pour les curieux, cet article trace les grandes ligne sur le fonctionnement des sites internet.

Comment fonctionnent les sites internet

Définitions : WEB, HTTP, etc

Commençons par quelques définitions.
Un article précédent explique les différentes notions.
Cela peut s'avérer utile si vous confondez les termes WEB, internet, www ou HTTP.

Introduction

Le serveur WEB est une application que l'on fait tourner sur une machine qui fait office de serveur.
Ce dernier doit fonctionner 24/24 afin de pouvoir délivrer les pages WEB à tout moment.
Dans les sites importants, on peut avoir plusieurs serveurs physiques en redondances.

Le serveur WEB ouvre et écoute sur un port réseau, en général le 80 et 443.
Le navigateur WEB se connecte à ce dernier afin de demander les pages WEB.

Établissement d'une connexion avec les ports locaux et distants

Pour plus de détails, se reporter à ce lien :

Qu'est-ce qu'un site internet ?

Un site internet est une succession de pages WEB avec des URLs différentes.
Par URL (Uniform Resource Locator) est l'adresse WEB de la page.
Par exemple, les liens suivants sont des URL :

  • https://www.malekal.com/comment-securiser-microsoft-edge-pour-se-proteger-des-virus/
  • https://www.malekal.com/outils-luminosite-windows10/

Initialement dans les années 90, une page WEB se présente avec du texte, des images.
Des liens Hypertextes permet de passer d'une page à l'autre.
Ces derniers peuvent aussi mener à d'autres sites WEB.
Ainsi le WEB est interconnecté et souvent assimilé à une toile.

Mais depuis les années 2000 avec des connexions internet plus rapides, les sites internet ont beaucoup changé.
Le contenu est devenu plus multimédia avec l'apparition des vidéos par exemple.
Les pages WEB sont aussi devenus beaucoup plus complexes.

Ainsi au final, des applications WEB ont vu le jour.
Par exemple Facebook est une application.
On parle d'application WEB car elle fonctionne sur le navigateur WEB à travers un site internet.
Mais on peut très bien avoir une application installable comme par exemple sur votre Smartphone.

Le fonctionnement d'un site internet : le résumé

La navigation WEB fonctionne donc en mode client et serveur.
Votre navigateur internet fait office de client qui se connecte à un serveur WEB.
Lorsque l'on tente d'accéder à un site WEB, voici les étapes :

  • Votre navigateur effectue une connexion réseau vers le serveur WEB. Pour cela, il peut effectuer une résolution DNS pour trouver l'adresse IP du serveur WEB.
  • Il demande alors le contenu d'une page WEB au serveur WEB qui lui donne en retour.
  • Puis le navigateur WEB reçoit le code de la page.
  • Enfin le navigateur internet se charge du rendu à l'écran grâce à son moteur.

C'est un mode de connexion de type client/server :

La page WEB peut contenir des liens vers des ressources présentes sur d'autres serveurs WEB.
Par exemple, le site malekal.com peut charger des publicités Google Adsense ou héberger une image d'un autre site internet.
Ainsi au final, pour charger le contenu d'une page WEB, le navigateur internet peut se connecter à de multiples serveurs WEB.

Le schéma suivant donne un aperçu du contenu d'une page WEB.
La page WEB se trouve sur un serveur WEB alors que les images, vidéos et publicités se trouvent sur d'autres.

source https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview

C'est pour cela que lorsque vous chargez une page WEB, en bas à gauche, vous voyez défiler plusieurs adresses WEB différentes.
De plus, le contenu de la page WEB peut se charger en plusieurs temps.
Par exemple, la page et le texte s'affiche et une fois terminée, les images arrivent.

Les composants pour le fonctionnement d'un site WEB

Le domaine

La première étape lorsque l'on souhaite créer un site internet est d'enregistrer un domaine.
Il s'agit d'adresse se terminant par .XXX que l'on nomme TLD.
Par exemple, malekal.com se termine par .com, google.fr se termine par .fr
C'est l'adresse que l'internaute devra saisir ou se connecter depuis un moteur de recherche pour afficher votre site internet sur son navigateur WEB.

Les registrars ou Bureau d'enregistrement  sont des entités sur internet qui ont la capacité de vendre des domaines.
Ainsi, un internaute qui souhaite avoir son propre nom de domaine achètent le domaine chez ce registrar.

Comment fonctionnent les sites internet

Par exemple, ci-dessous, Gandi permet d'enregistrer son domaine.
Il faut bien entendu que ce domaine soit unique, libre non acquis par un autre internaute ou société.
Le registrar peut alors proposer des équivalents.
Enfin, notez que le prix du domaine est en fonction du TLD.

Comment fonctionnent les sites internet

La fonction Whois permet d'obtenir des informations sur un domaine.
On peut alors connaître le registrar qui gère le domaine, la date de création et les serveurs DNS d'autorité.
Éventuellement des informations sur le propriétaire du domaine (nom, adresse mail) mais ces informations peuvent être masquées.

Comment fonctionnent les sites internet

Dans le cas d'un hébergement gratuit, tous les sites utilisent le même domaine.
Par exemple, Free propose des hébergements gratuits et toutes les adresses des sites utilisant cet hébergement se termine par free.fr.
Toutefois, il est tout à fait possible d'utiliser Free et acheter son propre domaine qui pointera vers les serveurs Free.

Les DNS

Une fois que le nom de domaine est acquis, le propriétaire peut-alors créer des sous-domaines ou sous-adresses.
C'est pour cela qu'il existe les adresses www.google.fr, www.malekal.com, forum.malekal.com, pjjoint.malekal.com.
Pour se faire, le propriétaire gère la zone DNS de ce domaine et peut déclarer autant de sous-adresses qu'il le souhaite..
Cela permet de faire pointer n'importe quelle sous adresse à une adresse IP.
Le propriétaire peut donc faire pointer une adresse souhaitée vers un serveur spécifique.

Lorsque l'adresse est déclarée, les serveurs d'autorités du domaine propagent ces nouvelles adresses.

Comment fonctionnent les sites internet

Ainsi, tout internaute dans le monde qui tapera une adresse liée à ce domaine pourra faire la correspondance vers l'adresse IP.
Plus d'informations sur le principe des DNS :

Le serveur WEB

Il existe différentes applications qui font office de serveur WEB : Apache, Nginx, IIS de Microsoft.

Apache a longtemps été le plus utilisé mais baisse depuis plusieurs années au profit de Nginx.
Ce dernier étant réputé plus rapide et flexible.
Microsoft avec IIS voit aussi son nombre de serveurs baissés.
Ainsi Linux reste l'OS le plus utilisé en tant que serveur pour héberger un serveur WEB.

Les logiciels de serveurs WEB

L'administrateur configure le serveur WEB et déclare les sites WEB.
Ainsi on peut avoir des configurations différentes par site.
Ci-dessous, un exemple de déclaration du site malekal.com sur Nginx.

Configurer un serveur WEB

Lorsque le site est fonctionnel et qu'un navigateur WEB demande une URL sur ce dernier, le serveur WEB répond et transmets les données et codes de celle-ci.

Le serveur WEB est un programme qui tourne sur un système d'exploitation.
Ce programme tourne en permanence et écoute sur un port réseau spécifique (port 80 ou 443).
Il est donc en attente de connexion réseaux provenant des clients WEB.
Les demandes aux serveurs WEB se font à partir de méthodes HTTP comme GET, POST, PUT, etc.
Ainsi pour demander le contenu d'une page WEB, on utilise la méthode GET.
Le serveur WEB retourne alors le code de la page WEB et le navigateur WEB à travers son moteur affiche la page WEB à l'écran de l'utilisateur.

Exemple ci-dessous où on demande manuellement le contenu de la page https://forum.malekal.com avec un GET /index.php
Ce dialogue se fait de manière transparente pour l'utilisateur.

Comment fonctionnent les sites internet

Si le site est mal configuré on peut alors obtenir une erreur 503.
Les erreurs HTTP sont standardisés, vous trouverez quelques informations sur la page suivante : Erreur HTTP et problème de connexion à un site Web

De même pour les sites sécurisés, dits HTTPS.
Si le certificat est périmé, mal créer, on peut alors avoir une erreur SSL.

Le navigateur WEB

Nous n'allons pas nous étendre sur ces derniers car il existe déjà un article.
Mais pour résumer, un navigateur WEB est une application que l'on installe dans le système d'exploitation (Windows, Linux, Android).

Ce dernier agit en tant que client pour effectuer une connexion vers le serveur WEB.
Il reçoit alors les pages WEB sous forme de code informatique.
Enfin le navigateur WEB interprète le code afin de composer le contenu de la page WEB à l'écran.
Cette construction se fait à travers le moteur de rendu.

Le résumé du fonctionnent des sites WEB

En résume donc pour créer un site internet, il faut :

  • Enregistrer un domaine
  • Créer les adresses à travers les déclarations DNS
  • Utiliser un service d'hébergement qui consiste à utiliser un serveur où un serveur WEB est installé pour délivrer les pages
  • Par exemple dans le cas du site malekal.com, voici les étapes pour afficher une page WEB depuis le navigateur WEB :
    • Le navigateur WEB à travers le système d'exploitation résout l'adresse WEB pour obtenir l'adresse IP. Par exemple www.malekal.com => 94.23.44.69
    • se connecte au serveur WEB sur l'adresse 94.23.44.69 et port 80 ou 443 dans le cas du HTTPs et demande le contenu de la page WEB.
    • le serveur WEB présent sur le serveur physique à l'adresse 94.23.44.69 répond et envoie le code de la page WEB
    • enfin le navigateur WEB "construit" la page WEB à partir du code pour l'afficher à l'écran du visiteur.

Il existe des solutions clés en moins ou certains aspects sont automatisés et masqués de l'utilisateur.
C'est notamment le cas des serveurs mutualisés.
Enfin pour les sites mondiaux, les infrastructures sont plus complexes.
Ces aspects sont abordés dans la seconde partie de cet article.

Le protocole HTTP (Hypertext Transfer Protocol)

On a donc d'un côté le client WEB et de l'autre le serveur WEB.
Mais comme ces derniers communiquent ?
A travers le protocole standard de communication HTTP (Hypertext Transfer Protocol).
C'est le protocole applicatif de communication des sites internet qui fonctionnent avec des méthodes GET, PUT, HEAD, etc.

L'article suivant présente ce dernier :

Les langages de programmation WEB

On sait maintenant comment le client et le serveur communique.
Il faut maintenant qu'ils se comprennent en utilisant le même langage.

Plusieurs langages existent pour afficher des pages internet.

Un serveur WEB peut accueillir plusieurs langages de programmation.
Certains nécessite l'installation de serveur annexe qui se greffe alors au serveur WEB.
Bien sûr chaque langage a ses spécifications, versions et évoluent dans le temps.

Les langages de programmation pour les sites internet

Les langages standards

Les langages de programmes standard qu'un serveur WEB sait interpréter.

  • HTML (HyperText Markup Language) : c'est le langage de base pour créer une page WEB. Il fonctionne avec des balises et peut appeler des images, créer des liens hypertextes, etc. Plusieurs versions existent depuis sa création. Aujourd'hui nous sommes à la version 5.
  • XHTML (Extensible HyperText Markup Language) : Il se voulait le successeur de HTML basé sur le XML.
  • CSS (Cascading Style Sheets) : Langage de présentation qui permet de donner la mise en forme d'un site WEB. Par exemple les couleurs, les tailles de polices, cadres etc. Le CSS se charge en début de page WEB dans l'en-tête.
  • JavaScript et Node.js : Il s'agit d'un langage de script qui permet de créer des pages WEB interactives. A ne pas confondre avec Java.

Ainsi de nos jours, un site WEB utilisent au moins HTML, CSS et JavaScript.

Les langages supplémentaires qui peuvent se greffer à un serveur WEB.
Pour l'activer, l'administrateur doit installer un serveur supplémentaire.
Le serveur WEB se connectent alors à ce dernier pour interpréter ce langage.

Les langages supplémentaires

Il existe énormément de langage, voici les principaux :

  • ASP
  • PHP
  • Java
  • Ruby
  • Perl
  • Python

Le serveur utilise ces langages pour au final délivrer du contenu HTML.

Du côté du navigateur internet, cela peut nécessiter l'installation d'application particulière.
Par exemple pour Java, cela peut nécessiter d'installer une application Java sous la forme d'un plugin.

Les sites WEB et cas particulier

Le cas des serveurs mutualisés

Bien entendu, il existe des solutions plus simples que ce parcours.

Généralement il s'agit de serveurs mutualisés avec des interfaces utilisateurs automatisés.
Par exemple OVH et Free proposent ces services tout compris.
En effet ces derniers sont à la fois des registrars et hébergeurs.

L'internaute souscrit au service et achète le domaine souhaité.
Le service créé alors automatiquement :

  • Le domaine et l'enregistrement DNS. Par exemple, l'internaute achète toto.fr et souhaite avoir un site www.toto.fr. Le service créé alors tout ce qu'il va bien.
  • Un espace disque dédié sur les serveurs.

Le principe du serveur mutualisés et d'avoir des grappes de serveurs avec des répertoires confinés à chaque utilisateur.
Ces derniers envoient les fichiers de leurs sites vers cet espace, généralement par FTP, qui est directement mis en ligne à travers le serveur WEB.
Il est très important que ces espaces soient confinés pour des raisons de sécurité.
Si un site est compromis à travers une backdoor PHP par exemple, il ne faut pas que les attaquants puissent avoir accès aux centaines des sites WEB présents sur le serveur WEB.

Les CMS

De même pour les bloggeurs, on trouve les CMS (content management system) pour système de contenu.
Ces derniers permettent de mettre en ligne du contenu de manière très simple.
En effet, il s'agit d'une application qui permet de rédiger des articles.
WordPress et Joomla sont les principaux CMS.
Par exemple, le site malekal.com utilise WordPress.

Ces derniers facilitent la rédaction et le maintiens de contenu des sites WEB.

Les sites mondiaux

Le cas présenté précédemment est celui d'un petite site.
Par exemple le site malekal.com a essentiellement des visiteurs français avec une petite audience comparé aux géants du WEB.
Ainsi, le serveur WEB se trouve sur une machine en France.
Mais pour les sites plus importants, l'infrastructure est plus complexe.
En effet pour les sites mondiaux, pour que les temps de réponses soient corrects, il faut avoir des grappes de serveurs présents sur toute la planète.
Ces derniers possèdent donc des datacenters (centre de données) un peu partout dans le monde.

C'est d'autant plus vrai pour les sites qui demandent beaucoup de bande passante comme le streaming (Youtube, Netflix, etc).
Ainsi des systèmes de contenus sont mis en place : content delivery network (CDN) ou réseau de diffusion de contenu (RDC).
Par exemple la société akamaihd propose des services de CDN pour des géants du WEB tel que Facebook, Apple, Ubisoft ou encore Steam.
Le but est de proposer les serveurs les plus proches des internautes pour un meilleur temps de réponse.
Dans certains cas, le P2P peut aussi être utilisé pour délivrer le contenu pour alléger les infrastructures.
Les internautes délivrent alors le contenu au lieu des serveurs.
C'est d'ailleurs le cas sur les mises à jour de Windows 10 mais aussi des vidéos chez Akamai.
Ainsi les vidéos Facebook peuvent utiliser le système de P2P lorsque les programmes Akamai  ou Facebook sont installés sur l'ordinateur de l'internaute.

Des accords entre les FAI et ces géants doivent aussi avoir lieu pour avoir des accès plus ou moins directs.
On appelle cela des accords de peering.

Bref, dans le cas des géants du WEB, cela est un peu plus compliqués même si le principe générale est le même que pour un petite site internet.