PWS - Notions globales / Architecture

Notions globales / Architecture

Pierre Blarre - Florian Rodriguez

1. Introduction

  • Web ?
  • Serveur?
  • Programmation web côté serveur?
  • Language serveur?
  • HTTP, HTML, URL… (Tim Berners-Lee)

2. Cycle de vie d'une requète HTTP

index.svg

2. Cycle de vie d'une requète HTTP

dns.svg

2. Cycle de vie d'une requète HTTP

http_requete.svg

2. Cycle de vie d'une requète HTTP

vhost.svg

2. Cycle de vie d'une requète HTTP

db.svg

2. Cycle de vie d'une requète HTTP

app_server_eval.svg

2. Cycle de vie d'une requète HTTP

http_reponse.svg

3. DNS

  • Modèle OSI

    OSI_Model_v1.svg

    Figure 1: source wikipedia

  • Pour contacter un serveur nous avons besoin de son adresse IP.
  • Le serveur dns permet de traduire un nom de domaine en adresse IP.

dns.svg

4. HTTP

  • Protocole de communication client-serveur développé pour le web.
  • Basé sur le protocole TCP/IP.
  • Requète / Réponse
  • La requète est une demande d'une ressource sur une URL (Uniform Resource Locator).:
    • plusieurs méthodes: GET / POST / PUT / DELETE
  • L'URL est souvent constituée de plusieurs parties:
    • Protocole: http / https
    • Domaine: www.google.com
    • Chemin: /search
    • Paramètres: ?q=hello

http.svg

5. Le serveur web

serveur-web.svg

  • Un serveur web (serveur HTTP) est un logiciel qui permet de servir des ressources / pages web.
  • Apache, Nginx, IIS, Lighttpd, Tomcat, NodeJS…
  • Le serveur web écoute sur un port (80, 443, 8080…) et attend des requètes HTTP.
  • Il sert des fichiers statiques (html, css, js, images…)
  • Il peut éventuellement générer ces fichiers de manière dynamiques grâce à un langage serveur
    (php, python, ruby, java, nodejs…).
  • Lorsqu'il reçoit une requête il va chercher la ressource demandée et la renvoyer au client:
    • Il vérifie le nom de domaine demandé et le redirige vers le bon dossier (virtual host ou vhost).
    • Puis il va chercher le fichier demandé (le chemin).
      Le chemin est relatif à un dossier racine (DocumentRoot).
      Souvent le fichier index.html est servi par défaut.
    • Si le fichier est un fichier dynamique il va le passer à l'interpréteur du langage serveur.

6. Les langages serveur

langages-serveur.svg

  • Ils vont permettre de générer des pages web de manière dynamique.
  • PHP, Python, Ruby, Java, NodeJS…
  • Ils vont permettre de se connecter à une base de données.
  • Ils vont permettre de gérer des sessions.
  • Ils vont permettre de gérer des formulaires.