Http et Client serveur Web
Communication Client/serveur
Client/serveur
Acteurs
- Entre 1 client Web (navigateur, application…)
- Et un ou plusieurs serveurs HTTP
Scénario
- Requête initiale vers la ressource (method + URL + headers) de la part du client
- Réponse du Serveur HTTP (document Web)
- Requêtes initiées par le document web (images, vidéo, css…)
- Réponses HTTP reçues par le client (qui assemble éventuellement)
URL
Technologies Web
- Web
- HTML
- CSS
- Javascript
- Web APIs : elles utilisent des données dans un certain format
- JSON : Javascript Object Notation
- XML : Extensible Markup Language
Le protocole HTTP
Requête
Une requête HTTP comprend :
- La méthode (GET, POST, HEAD…)
- L'URL
- La version du protocole utilisé par le client (généralement HTTP/1.0)
- Les champs d'en-tête de la requête: donnent des informations supplémentaires sur la requête et/ou le client (Navigateur, système d'exploitation, …)
- Le corps de la requête: par exemple pour l'envoi de données via un formulaire
Exemple d'en-tête pour la requête :
GET [/ https://slamwiki2.kobject.net/] HTTP/1.0 Accept : text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7 User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36
Réponse
La réponse HTTP comprend :
- Le statut indique
- La version du protocole utilisé
- Le code de statut
- La signification du code
- Les champs d'en-tête de la réponse donnent des informations supplémentaires sur la réponse et/ou le serveur
- Le corps de la réponse (body): il contient le document demandé
Exemple d'en-tête pour la réponse :
HTTP/1.0 200 OK Cache-Control: no-store, no-cache, must-revalidate Connection: Keep-Alive Content-Encoding: gzip Content-Type: text/html; charset=utf-8 Date: Thu, 02 Sep 2021 08:50:46 GMT Expires: Thu, 19 Nov 1981 08:52:00 GMT Keep-Alive: timeout=5, max=98 Pragma: no-cache Server: Apache Transfer-Encoding: chunked Vary: Cookie,Accept-Encoding X-UA-Compatible: IE=edge,chrome=1