Bases du web

Le web c'est quoi ?

Le web != Internet

Le web

Invention : 90's par Tim Berners-Lee du CERN

Protocole(s) : HTTP, HTTPS

Contenu : Documents hypertext, à base de HTML & d'hyperliens

Internet

Invention : 80's par le MIT, UCLA, et d'autres universités US.

Protocole(s) : TPC/IP et UDP

Contenu : Des données, en paquets, sur des adresses

Le web appartient à internet

Internet

Web

Indexé

Non Indexé

Emails

VOIP

Darknet

Darknet

P2P

IoT

IRC

Comment ça fonctionne ?

Des serveurs qui contiennent des sites

Serveur A

raspbian-f.fr

Page : /

Page : /downloads

plebweb.fr

Page : /

Serveur B

linux.org

Page : /

Page : /distribs.htm

Serveur C

google.com

Page : /

Page : /search.php

Des sites qui sont formées de pages

Des pages qui contiennent des liens

Déroulement de la consultation d'une page

Internet

Réseau A

Réseau B

Réseau C

Client

Site internet

Réseaux Autonomous Systems

Requête

Forward

Traitement

Réponse

Forward

Serveur DNS

Recherche IP pour nom domaine

Client et serveur

Le client :

C'est le logiciel qui permet à l'utilisateur d'accéder à une page web.

Il existe plusieurs clients, les plus classiques étant Firefox, Chrome, IE, Safari et Opéra.

Le serveur :

C'est la machine auprès de laquelle le client va demander la page.

Désigne la machine physique (ordinateur), mais aussi le logiciel chargé d’interpréter les demandes du client.

La communication

Avec le web, tout est basé sur un protocole : HTTP

Pour échanger des informations, il faut un format commun.

HTTP

Les échanges HTTP

Un échange HTTP est constitué de deux parties, la requête et la réponse.

GET /page.html HTTP/1.0
Host: example.com
Referer: http://example.com/
User-Agent: Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59 GMT
Server: Apache/0.8.4
Content-Type: text/html
Content-Length: 59
Expires: Sat, 01 Jan 2000 00:59:59 GMT
Last-modified: Fri, 09 Aug 1996 14:21:40 GMT

<TITLE>Exemple</TITLE>
<P>Ceci est une page d'exemple.</P>

La requête HTTP

Une requête HTTP est émise par le client et est constituée de deux parties.

GET /index.php?param1=value HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Fri, 09 Aug 2013 23:54:35 GMT
If-None-Match: "1541025663+ident"
Cache-Control: max-age=0

1. La request line, qui définie la ressource recherchée

2. Les headers, qui définissent des options

GET /index.php?param1=value HTTP/1.1

La request line est constituée de 3 parties.

1. La méthode qui décrit le type d'échange souhaité

GET : Demander une ressource.

HEAD : Comme GET, mais retourne juste les headers.

POST : Envoyer des données pour créer une ressource.

PUT : Envoyer des données pour mettre à jour.

DELETE : Supprimer une ressource.

TRACE : Afficher la requête envoyée.

OPTIONS : Afficher les méthodes HTTP supportées.

CONNECT : Mettre en place du tunneling.

PATCH : Mettre à jour un bout d'une ressource.

2. La ressource

La ressource est découpée en 2 parties :

1. Le chemin de la ressource avant le ?.

2. Les arguments après. Séparées par des &.

3. La version du protocole HTTP. Actuellement 1.1.

Les headers HTTP sont presque tous optionnels.

Le seul champ obligatoire est le champ "Host", qui défini le nom de domaine de la ressource.

Les headers HTTP respectent tous le même format.

Nom: Valeur <retour à la ligne>

Host: example.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Fri, 09 Aug 2013 23:54:35 GMT
If-None-Match: "1541025663+ident"
Cache-Control: max-age=0

Un site comment ça fonctionne ?

Traitement d'une requête par le serveur.

1 - Le serveur écoute en permanence sur les ports définis dans ses fichiers de config. Généralement 80 et 443.

2 - Quand il reçoit une requête il l'analyse pour trouver la ressource associée sur le serveur.

4 - S'il s'agit d'une ressource dynamique (fichier PHP), le serveur appel un interpréteur PHP qui va lire le PHP est générer un fichier (généralement HTML, mais pas forcément) qui sera renvoyé au serveur.

3 - S'il s'agit d'une simple ressource statique (image, fichier HTML, etc.), le serveur la retourne au client.

1. Demande une page au serveur.

2. Demande au PHP de générer une page.

Client

Serveur

Moteur PHP

3. Renvoi la page générée au serveur.

4. Renvoi la page au client.

Il existe donc 3 acteurs dans une architecture web classique !

Le client

Le serveur

L'interpreteur

Chaque partie ne discute qu'avec son voisin immédiat !

Front

Back

Quelques points à retenir

Internet != Web

Internet, ce n'est pas le web.

Le web, c'est seulement une partie d'internet qui utilise HTML, le protocole HTTP et qui fonctionne grâce aux liens.

Sur le web, on parle en HTTP

Pour discuter, les ordinateurs ont besoin de parler la même langue. Pour échanger entre un client et un serveur, sur le web, on utilise le protocole HTTP.

Un échange, c'est une requête et une réponse.

Chacun discute avec un seul acteur.

Le client parle au serveur. Le serveur lui renvoi du HTML.

Le serveur parle à interpréteur (le programme qui analyse le langage PHP). L'interpréteur lui renvoie du HTML.

Le client ne verra jamais de PHP !

Made with Slides.com