1xx Informationell ⤢ 100Continue Der Server hat die Request-Header empfangen; der Client darf den Body senden. Nach einer Preflight-Prüfung vor dem Upload eines großen Bodys. ⤢ 101Switching Protocols Der Server stimmt dem Wechsel zum vom Client angeforderten Protokoll zu. Upgrade einer HTTP-Verbindung auf WebSocket. ⤢ 102Processing Der Server hat die Anfrage erhalten und arbeitet noch daran. Ein WebDAV-Server bestätigt eine lange Anfrage, damit beim Client kein Timeout auftritt. ⤢ 103Early Hints Der Server sendet vorläufige Header, bevor die finale Antwort bereit ist. Ein Browser darf Assets vorladen, während die Seite noch gerendert wird. 2xx Erfolg ⤢ 200OK Die Anfrage war erfolgreich; der Antwort-Body enthält das Ergebnis. Standard-Erfolg für GET oder PUT. ⤢ 201Created Die Anfrage war erfolgreich und eine neue Ressource wurde erstellt. Antwort nach einem erfolgreichen POST, der etwas anlegt. ⤢ 202Accepted Die Anfrage wurde zur Verarbeitung angenommen, ist aber noch nicht fertig. Ein lang laufender Job wurde gestartet und läuft asynchron. ⤢ 203Non-Authoritative Information Die Anfrage war erfolgreich, aber die zurückgegebenen Daten wurden auf dem Rückweg verändert. Ein Proxy oder Cache liefert veränderte Metadaten statt denen des Ursprungs. ⤢ 204No Content Die Anfrage war erfolgreich; es gibt keinen Body zurückzugeben. Ein DELETE war erfolgreich, oder ein PUT ohne etwas mitzuteilen. ⤢ 205Reset Content Die Anfrage war erfolgreich; der Client soll die Ansicht zurücksetzen, die sie gesendet hat. Nach einem Formular-Submit, damit die Seite ihre Felder leert. ⤢ 206Partial Content Der Server liefert nur den angeforderten Teil der Ressource. Ausliefern eines Byte-Bereichs aus einer Range-Anfrage. 3xx Umleitung ⤢ 301Moved Permanently Die Ressource hat eine dauerhaft neue URL; künftige Anfragen sollten sie verwenden. Eine Seite ist umgezogen und Suchmaschinen müssen ihren Index aktualisieren. ⤢ 302Found Die Ressource liegt vorübergehend unter einer anderen URL, aber die ursprüngliche bleibt maßgeblich. Kurze Umleitung auf eine Login-Seite. ⤢ 303See Other Die Antwort liegt unter einer anderen URL und muss mit GET geholt werden. Das PRG-Muster: einen POST auf eine Ergebnisseite umleiten, damit ein Reload nicht erneut absendet. ⤢ 304Not Modified Die zwischengespeicherte Kopie ist noch gültig; der Server sendet keinen Body. Conditional GET, bei dem der Cache des Clients aktuell ist. ⤢ 305Use Proxy Die Anfrage muss über den in der Antwort genannten Proxy gesendet werden. Alt-Proxy-Netzwerke; seit 2011 veraltet. ⤢ 307Temporary Redirect Die Ressource liegt vorübergehend woanders; die ursprüngliche Anfragemethode muss erhalten bleiben. Wie 302, aber ein POST bleibt beim Redirect ein POST. ⤢ 308Permanent Redirect Die Ressource hat eine dauerhaft neue URL; die ursprüngliche Anfragemethode muss erhalten bleiben. Wie 301, aber ein POST bleibt beim Redirect ein POST. 4xx Clientfehler ⤢ 400Bad Request Der Server konnte die Anfrage wegen fehlerhafter Syntax nicht verstehen. Ungültiges JSON oder ein fehlendes Pflichtfeld. ⤢ 401Unauthorized Authentifizierung ist erforderlich; sie fehlte oder ist gescheitert. Kein Token, oder ein ungültiges bzw. abgelaufenes Token. ⤢ 402Payment Required Die Anfrage erfordert Zahlung, obwohl die Spezifikation nie definiert hat, wie. Manche APIs nutzen ihn als Paywall-Marker; die meisten nutzen ihn nie. ⤢ 403Forbidden Der Client ist authentifiziert, darf aber nicht auf diese Ressource zugreifen. Gültiger Login, aber keine Berechtigung für diese Ressource. ⤢ 404Not Found Der Server hat unter dieser URL keine Ressource. Unbekannte URL oder eine ID, die nicht existiert. ⤢ 405Method Not Allowed Die URL existiert, erlaubt aber die verwendete Anfragemethode nicht. Ein POST gegen einen Endpunkt, der nur GET akzeptiert. ⤢ 406Not Acceptable Der Server kann keinen Inhalt liefern, der zu den Accept-Headern des Clients passt. Der Client wollte nur XML, die API liefert aber nur JSON. ⤢ 407Proxy Authentication Required Der Client muss sich beim Proxy authentifizieren, bevor die Anfrage weitergeht. Ein Firmen-Proxy lehnt eine unauthentifizierte Anfrage ab. ⤢ 408Request Timeout Der Client brauchte zu lange zum Senden und der Server gab auf. Ein Upload, der abbrach, bevor der Body vollständig ankam. ⤢ 409Conflict Die Anfrage kollidiert mit dem aktuellen Zustand der Ressource. Eine doppelte E-Mail oder ein Bearbeitungsrennen auf demselben Datensatz. ⤢ 410Gone Die Ressource existierte einmal, wurde aber dauerhaft entfernt. Ein bewusst stillgelegter Endpunkt, stärker als 404. ⤢ 411Length Required Die Anfrage braucht einen Content-Length-Header und hat keinen. Ein Server, der die Größe vorab wissen muss, lehnt einen gestreamten Body ab. ⤢ 412Precondition Failed Eine Header-Vorbedingung wie If-Match ergab falsch. Eine optimistische Bearbeitung, bei der sich der Datensatz seit dem Lesen geändert hat. ⤢ 413Content Too Large Der Anfrage-Body überschreitet das vom Server akzeptierte Limit. Ein Upload, der größer ist als die maximale Body-Größe des Servers. ⤢ 414URI Too Long Die Anfrage-URL ist länger, als der Server zu interpretieren bereit ist. Ein Formular, das versehentlich in einen GET-Query-String serialisiert wurde, der endlos wuchs. ⤢ 415Unsupported Media Type Das Format des Anfrage-Bodys gehört nicht zu den vom Endpunkt akzeptierten. Ein POST mit Content-Type text/plain gegen einen Nur-JSON-Endpunkt. ⤢ 416Range Not Satisfiable Der Byte-Bereich im Range-Header passt nicht zur Ressource. Anfrage von Bytes hinter dem Dateiende beim Fortsetzen eines Downloads. ⤢ 417Expectation Failed Der Server kann die im Expect-Header genannte Erwartung nicht erfüllen. Eine 100-continue-Erwartung, die der Server verweigert. ⤢ 418I'm a teapot Der Server ist eine Teekanne und weigert sich, Kaffee zu brühen. Ein Aprilscherz von 1998, der nicht stirbt; APIs geben ihn zum Spaß zurück. ⤢ 421Misdirected Request Die Anfrage ging an einen Server, der dafür keine Antwort erzeugen kann. Eine wiederverwendete Verbindung zu einem Host, den dieser Server nicht bedient. ⤢ 422Unprocessable Entity Die Anfrage ist wohlgeformt, aber ihre Werte bestehen die semantische Validierung nicht. Gültiges JSON, dessen Felder gegen Geschäftsregeln verstoßen. ⤢ 425Too Early Der Server lehnt eine Anfrage ab, die ein Replay-Risiko birgt. Abweisung einer wiederholten nicht-idempotenten Anfrage, bevor Schlüssel rotiert sind. ⤢ 426Upgrade Required Der Client muss für diese Ressource auf ein anderes Protokoll wechseln. Ein Endpunkt, der auf TLS oder WebSocket besteht. ⤢ 428Precondition Required Der Server verlangt konditionale Header, die die Anfrage nicht gesendet hat. Eine API, die If-Match verlangt, um verlorene Updates zu verhindern. ⤢ 429Too Many Requests Der Client hat in einem Zeitfenster zu viele Anfragen gesendet. Ein Rate-Limit wurde erreicht; Abstand halten und erneut versuchen. ⤢ 431Request Header Fields Too Large Ein oder mehrere Header-Felder sind zu groß für die Verarbeitung durch den Server. Ein Cookie oder Token, das so weit wuchs, dass es jede Anfrage an die Site blockierte. ⤢ 451Unavailable For Legal Reasons Die Ressource ist aus rechtlichen Gründen blockiert, etwa durch eine Takedown- oder Geo-Sperre. Eine behördliche Takedown-Aufforderung oder eine in einem Land gesperrte Seite. 5xx Serverfehler ⤢ 500Internal Server Error Der Server stieß auf eine unerwartete Bedingung und scheiterte. Eine unbehandelte Ausnahme oder ein Bug auf dem Server. ⤢ 501Not Implemented Der Server unterstützt die angeforderte Methode oder das Feature nicht. Ein Endpunkt ist deklariert, aber noch nicht gebaut. ⤢ 502Bad Gateway Ein Gateway oder Proxy erhielt eine ungültige Antwort vom Upstream-Server. Ein Reverse-Proxy erreichte das Backend nicht. ⤢ 503Service Unavailable Der Server kann die Anfrage vorübergehend nicht bearbeiten. Wartung, Überlastung oder ein ausgefallener abhängiger Dienst. ⤢ 504Gateway Timeout Ein Gateway oder Proxy erhielt rechtzeitig keine Antwort vom Upstream-Server. Das Backend brauchte zu lange und der Proxy gab auf. ⤢ 505HTTP Version Not Supported Der Server unterstützt die HTTP-Version der Anfrage nicht. Ein Client spricht eine Protokollversion, die der Server nie gelernt hat. ⤢ 506Variant Also Negotiates Die transparente Inhaltsverhandlung endete in einer zirkulären Referenz. Ein falsch konfigurierter Server mit experimenteller Content-Negotiation. ⤢ 507Insufficient Storage Der Server kann die Repräsentation nicht speichern, die die Anfrage benötigt. Ein WebDAV-Server, dessen zugewiesener Speicher voll ist. ⤢ 508Loop Detected Der Server geriet bei der Verarbeitung der Anfrage in eine Endlosschleife. Eine WebDAV-Bindung, die auf sich selbst verweist. ⤢ 511Network Authentication Required Der Client muss sich beim Netzwerk authentifizieren, um Zugang zu erhalten. Ein Captive Portal in einem Hotel oder Flughafen fängt die Anfrage ab.