HTTP: Requests, Responses, Statuscodes
Lies einen echten Request und eine echte Response, verstehe, was Statuscodes wirklich versprechen, und warum HTTP so tut, als kenne es dich nicht.
HTTP ist ein Textgespräch auf einer bereits aufgebauten TCP-Verbindung. Der Client schickt eine Anfrage, der Server antwortet mit genau einer Antwort. Eine Anfrage besteht aus Request-Zeile, Headern, einer Leerzeile und einem optionalen Body. Eine Antwort aus Statuszeile, Headern, einer Leerzeile und einem optionalen Body.
Verbindung geschlossen. Es besteht noch keine Verbindung.
- Gesendete Pakete
- 0
- Wiederholungen
- 0
- Status
- Noch nicht hergestellt
GET /articles/42 HTTP/1.1
Host: api.example.org
Accept: application/json
Authorization: Bearer eyJhbGciOi...
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: max-age=60
{"id": 42, "title": "..."}Statusfamilien sagen, wer handeln muss. 2xx — hat funktioniert. 3xx — die Ressource ist umgezogen, der Location-Header sagt wohin. 4xx — die Anfrage ist schuld: 400 fehlerhaft, 401 nicht authentifiziert, 403 verboten, 404 nicht vorhanden, 429 zu viele Anfragen. 5xx — der Server ist schuld. 502 oder 503 lohnt ein erneuter Versuch, 400 nie.
Praxis
Baue einen korrekten HTTP-Request, der eine neue Bestellung mit JSON-Body {"item":"book"} anlegt.
Hinweise
- Die Request-Zeile beantwortet drei Fragen: welche Aktion, welche Ressource, welche Protokollversion.
- In HTTP/1.1 sagt ein Request ohne Host-Header dem Server nicht, welche Seite du willst.
15 XP
POST /orders liefert 503. Was sollte der Client tun?
Hinweise
- Schau auf die Methode, nicht nur auf den Code: Der Code sagt, was der Server getan hat, nicht wer schuld ist.
- Automatisch wiederholen solltest du nur, wenn die Wiederholung sicher ist.
13 XP
Schreibe eine Funktion loadUser(id), die /users/{id} als JSON lädt, den Status prüft und bei 404 einen Fehler wirft.
Hinweise
- Schick den Accept-Header im selben Optionsobjekt, das du an fetch übergibst.
- Gib das geparste Objekt zurück, nicht die Response — und wirf den Fehler vor dem Parsen, wenn die Anfrage fehlgeschlagen ist.
16 XP