Menu
Coddy logo textTech

Anatomie einer Anfrage

Lektion 20 von 47 im Kurs Netzwerken mit dem Terminal von Coddy.

Unterhalb von curl ist eine HTTP-Anfrage einfacher Text, der über einen Socket gesendet wird. Sie beginnt mit einer Zeile, die angibt, was du möchtest:

GET /index.html HTTP/1.1

Drei Teile: die Methode (welche Art von Operation), der Pfad (welches Element) und die Version. Danach kommen Header, jeweils einer pro Zeile, dann eine Leerzeile und anschließend ein optionaler Body.

Die Leerzeile dient nicht nur der Gestaltung. An ihr erkennt der Server, dass die Header beendet sind und der Body, falls vorhanden, beginnt. Eine Anfrage ohne sie hängt, weil der Server weiterhin darauf wartet, den Rest zu empfangen.

Du kannst eine Anfrage von Hand senden. nc öffnet eine unverfälschte Verbindung, und alles, was du ihm zuführst, wird direkt über die Leitung gesendet:

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

\r\n ist der von HTTP erforderliche Zeilenabschluss, und die doppelte Folge stellt die Leerzeile dar.

challenge icon

Aufgabe

Schwer

Überspringe curl vollständig und sprich selbst HTTP.

  1. Erstelle index.html, das raw enthält
  2. Stelle den Ordner auf Port 9110 bereit
  3. Sende eine rohe GET /index.html HTTP/1.0-Anfrage über nc und gib nur die erste Zeile der Antwort aus

Diese erste Zeile ist die Statuszeile des Servers. Erwartete Ausgabe:

HTTP/1.0 200 OK

Denke an die Leerzeile: printf 'GET /index.html HTTP/1.0\r\n\r\n'.

Probier es selbst

Terminal
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Netzwerken mit dem Terminal

Übe selbstständig: Terminal-Playground