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/firefoxversionHTTP/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=01. 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.1La 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=0Un 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 !

Culture du Web
By plebweb
Culture du Web
- 651