open

Qui fait quoi lors d'une requête HTTP ?

#1 Introduction open

Ce tutoriel est le premier d'une série qui est une introduction dans laquelle je vais vous présenter les principales technologies du web.

Les principales technologies du web

La liste n'est pas exhaustive loin de là. Les technos sont nombreuses. C'est un monde très riche et très évolutif. Mais ici on va s'intéresser uniquement aux technologies de base. Celles qui sont incontournables et que vous retrouvez partout. On trouve des langages, des services et des protocoles.

Pour essayer de s'y retrouver on va faire une manip de base c'est à dire que l'on va prendre un navigateur et on va demander une page web.

Une requete HTTP

Et on va se poser la question : Qu'est-ce qui va se passer ?

Le navigateur envoie une requête HTTP vers le serveur sur lequel est hébergée la page du site internet auquel je veux accéder.

Ce serveur va renvoyer vers le navigateur de ma machine la page que je lui ai demandé. Cet envoi prend la forme d'un envoi de fichiers qui contiennent du code écrit dans différents langages. On va avoir quasi systématiquement :

  1. Du HTML qui est un langage qui va servir à décrire la structure de la page, par exemple permettre d'identifier ce qui est un titre, ce qui est un tableau etc.
  2. Du CSS qui est un langage qui va servir à gérer le rendu visuel de la page. Par exemple ce titre est bleu, ce tableau est centré.
  3. Du JAVASCRIPT qui est un langage qui va servir à gérer l'interactivité avec l'internaute c'est à dire en gros répondre aux 'clics' produits par l'internaute. Sur certains clics JAVASCRIPT se servira d'AJAX pour communiquer avec le serveur. Il ira chercher des données sur le serveur et s'en servira pour modifier le document de manière dynamique.

#2 Qu'est qu'on entend par serveur ? open

Un serveur hard avec les serveurs soft

Le serveur peut désigner la machine au sens hardware mais il peut aussi désigner des programmes qui tournent sur cette machine.

On en a l'illustration ici. Quand je pose la question : qu'est ce qui se passe au niveau du serveur ? Sans rien préciser et bien je parle je la machine. Lorsque je précise au niveau du schéma 'serveur HTTP' ou 'serveur MYSQL' là il s'agit de programmes. Ces programmes sont appelés serveurs car ils répondent aux requêtes de programmes clients autrement dit ils les servents.

Le plus souvent la différence est assez facile à faire en fonction du contexte.

#3 Retour au traitement de notre requête côté serveur open

Là deux cas sont possibles :

HTML ou PHP
  1. Je commence par le cas le plus simple. La page HTML que je demande est déjà prête et stockée sur le système de fichiers du serveur. Le serveur va aller la chercher et renvoyer le code HTML au navigateur.
  2. Dans le deuxième cas, un peu plus compliqué. Je suppose que je demande une page qui a besoin d'être fabriquée à partir de données qui sont en base de données. Cette page n'existe pas au format HTML sur le système de fichiers du serveur. Par contre les informations nécessaires à sa fabrication sont stockées dans la base de données par MYSQL. Dans ce cas c'est le PHP qui va être sollicité pour interroger MYSQL, récupérer les informations et 'fabriquer' le code HTML de la page en temps réel. Ensuite comme dans le premier cas le code HTML est envoyé au navigateur.

MYSQL est un gestionnaire de base de données. Il sert à stocker, ranger et trier des données. C'est un service (un programme) qui tourne sur le serveur.

PHP est un langage de programmation. Le code PHP est inséré dans du code HTML. PHP s'interface avec MYSQL c'est à dire qu'il fait des requêtes à MYSQL pour fournir ou récupérer des données. Ensuite PHP se sert des données pour générer du code HTML et ainsi fabriquer la page à la demande.