Menu
Coddy logo textTech

Anatomie d’une requête

Leçon 20 sur 47 du cours Réseautage avec le terminal de Coddy.

Sous curl, une requête HTTP est du texte brut envoyé via une socket. Elle commence par une ligne indiquant ce que vous voulez :

GET /index.html HTTP/1.1

Trois éléments : la méthode (le type d’opération), le chemin (l’élément concerné) et la version. Viennent ensuite les en-têtes, un par ligne, puis une ligne vide, et enfin un corps facultatif.

La ligne vide n’est pas décorative. C’est ainsi que le serveur sait que les en-têtes sont terminés et que le corps, s’il y en a un, commence. Une requête qui n’en contient pas reste bloquée, car le serveur attend toujours de recevoir la suite.

Vous pouvez en envoyer une manuellement. nc ouvre une connexion brute et tout ce que vous lui transmettez part directement sur le réseau :

printf 'GET / HTTP/1.0\r\n\r\n' | nc 127.0.0.1 9110

\r\n est la fin de ligne exigée par HTTP, et les deux séquences répétées correspondent à cette ligne vide.

challenge icon

Défi

Difficile

Ignorez complètement curl et communiquez directement en HTTP.

  1. Créez index.html contenant raw
  2. Servez le dossier sur le port 9110
  3. Envoyez une requête GET /index.html HTTP/1.0 brute via nc et affichez uniquement la première ligne de la réponse

Cette première ligne est la ligne d’état du serveur. Sortie attendue :

HTTP/1.0 200 OK

N’oubliez pas la ligne vide : printf 'GET /index.html HTTP/1.0\r\n\r\n'.

Essayez vous-même

Terminal
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Réseautage avec le terminal

Entraînez-vous par vous-même : Playground Terminal