Une réponse HTTP
Comment est structuré le message HTTP venant de la machine "serveur" pour répondre à notre machine "client" ?
La structure est à peu près la même que celle pour la requête HTTP avec quelques modifications.
Les headers (en-têtes)
La première ligne
HTTP/1.1 200 OKPremièrement nous avons la version du protocole, ici 1.1.
Ensuite nous avons le code de status de la réponse, ici 200, suivi de sa description, ici OK.
Vous pourrez trouver tout les autres code de status dans la documentation MDN : https://developer.mozilla.org/fr/docs/Web/HTTP/Status
2xxveut généralement dire que tout s'est bien déroulé et 200 et le cas normal de réponse.3xxveut dire qu'il y a une redirection ;4xxqu'il y a une erreur dans la requête du client ;404 Not Foundétait la plus connue quand un chemin n'existe pas
5xxqu'il y a une erreur coté serveur.
Les champs
La structure est la même que pour la requête HTTP.
Pour recevoir une page HTML, la réponse HTTP peut ressembler à ceci :
Content-Typecorrespond à text/html qui est le MIME des documents HTML. On explicite aussi que son encodage est en UTF-8.Server(optionnel) correspond au nom du serveur qui a traité la requête et réponduContent-Length(optionnel) est la longueur du contenu en bits que l'on doit lire
En fait, ça ressemble un peu à ce qu'on doit envoyer si on veut ajouter un contenu à notre requête HTTP.
Le contenu
Sans surprise, on obtient ici le contenu de la réponse dont le type correspond au MIME du Content-Type dans les en-têtes.
Recevoir les données

On reçoit bien la page HTML de http://example.com/
On peut lire que le contenu est du HTML grâce au Content-Type: text/html
Mis à jour