„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Die ultimative Referenz für HTTP-Statuscodes im API-Design

Die ultimative Referenz für HTTP-Statuscodes im API-Design

Veröffentlicht am 17.11.2024
Durchsuche:510

The Ultimate Reference for HTTP Status Codes in API Design

In der Welt der Webentwicklung und des API-Designs spielen HTTP-Statuscodes eine entscheidende Rolle bei der Kommunikation des Ergebnisses von Anfragen zwischen Clients und Servern. Diese Codes bieten eine standardisierte Möglichkeit, bestimmte Bedingungen, Erfolge oder Fehler anzuzeigen, die während der Verarbeitung von HTTP-Anfragen auftreten. Das Verständnis dieser Statuscodes ist für Entwickler von entscheidender Bedeutung, da es beim Debuggen, der Fehlerbehandlung und der Erstellung robusterer Anwendungen hilft.

1. 1xx Information

Diese Statuscodes weisen auf eine vorläufige Antwort hin. Sie werden in der Praxis selten verwendet, können aber in bestimmten Situationen hilfreich sein.

  • 100 Weiter: Der Server hat die Anforderungsheader erhalten und der Client sollte mit dem Senden des Anforderungstexts fortfahren.
  • 101 Protokollwechsel: Der Anforderer hat den Server gebeten, das Protokoll zu wechseln, und der Server hat dem zugestimmt.

2. 2xx Erfolg

Diese Statuscodes zeigen an, dass die Anfrage des Kunden erfolgreich empfangen, verstanden und akzeptiert wurde.

  • 200 OK: Die Anfrage war erfolgreich und die Antwort enthält die angeforderten Daten oder das angeforderte Ergebnis.
    • Beispiel: Abrufen der Profilinformationen eines Benutzers.
  • 201 Erstellt: Die Anfrage war erfolgreich und eine neue Ressource wurde erstellt.
    • Beispiel: Erstellen eines neuen Benutzerkontos oder Veröffentlichen eines neuen Blogeintrags.
  • 204 Kein Inhalt: Der Server hat die Anfrage erfolgreich verarbeitet, gibt aber keinen Inhalt zurück.
    • Beispiel: Aktualisieren der Einstellungen eines Benutzers, bei dem kein Antworttext erforderlich ist.
  • 206 Teilinhalt: Der Server stellt aufgrund eines vom Client gesendeten Bereichsheaders nur einen Teil der Ressource bereit.
    • Beispiel: Videoinhalte streamen oder große Dateien in Blöcken herunterladen.

3. 3xx-Umleitung

Diese Statuscodes weisen darauf hin, dass der Benutzeragent weitere Maßnahmen ergreifen muss, um die Anfrage zu erfüllen.

  • 301 Dauerhaft verschoben: Die angeforderte Ressource wurde dauerhaft auf eine neue URL verschoben.
  • 302 gefunden: Die angeforderte Ressource befindet sich vorübergehend unter einer anderen URL.
  • 304 Nicht geändert: Zeigt an, dass die Ressource seit der in den Anforderungsheadern angegebenen Version nicht geändert wurde.

4. 4xx-Client-Fehler

Diese Statuscodes sind für Situationen gedacht, in denen der Client offenbar einen Fehler gemacht hat.

  • 400 Bad Request: Der Server kann die Anfrage aufgrund ungültiger Syntax oder fehlerhafter Eingabe nicht verarbeiten.

    • Beispiel: Senden eines fehlerhaften JSON-Codes im Anforderungstext.
    • Verwendung: Wird verwendet, wenn die Anfrage selbst fehlerhaft ist oder ungültige Parameter enthält.
  • 401 Nicht autorisiert: Die Anfrage erfordert eine Benutzerauthentifizierung.

    • Beispiel: Versuch, auf einen geschützten API-Endpunkt zuzugreifen, ohne gültige Anmeldeinformationen anzugeben.
    • Verwendung: Wird verwendet, wenn eine Authentifizierung erforderlich ist und nicht bereitgestellt wurde oder ungültig ist.
  • 403 Verboten: Der Server versteht die Anfrage, weigert sich jedoch, sie zu autorisieren.

    • Beispiel: Ein Benutzer versucht, auf Funktionen zuzugreifen, die nur Administratoren vorbehalten sind.
    • Verwendung: Wird verwendet, wenn der Benutzer authentifiziert ist, aber keine Berechtigung für den angeforderten Vorgang hat.
  • 404 Not Found: Die angeforderte Ressource konnte nicht auf dem Server gefunden werden.

    • Beispiel: Versuch, ein gelöschtes Benutzerprofil abzurufen.
    • Verwendung: Wird verwendet, wenn die angeforderte Ressource nicht vorhanden ist.
  • 405 Methode nicht zulässig: Die in der Anfrage angegebene Methode ist für die durch den Anfrage-URI identifizierte Ressource nicht zulässig.

    • Beispiel: Senden einer POST-Anfrage an einen Endpunkt, der nur GET-Anfragen akzeptiert.
  • 409 Konflikt: Die Anfrage konnte aufgrund eines Konflikts mit dem aktuellen Status der Ressource nicht verarbeitet werden.

    • Beispiel: Es wird versucht, einen Benutzer mit einer E-Mail-Adresse zu erstellen, die bereits im System vorhanden ist.
    • Verwendung: Wird verwendet, wenn ein Konflikt mit dem aktuellen Status der Ressource besteht, beispielsweise doppelte Einträge.
  • 422 Nicht verarbeitbare Entität: Der Server versteht den Inhaltstyp und die Syntax der Anfrage, kann die enthaltenen Anweisungen jedoch nicht verarbeiten.

    • Beispiel: Senden eines Formulars mit ungültigen Daten, die die serverseitige Validierung nicht bestehen.
    • Verwendung: Wird für Validierungsfehler verwendet, bei denen die Anforderungssyntax korrekt ist, die Daten jedoch semantisch falsch sind.
  • 429 Zu viele Anfragen: Der Benutzer hat in einem bestimmten Zeitraum zu viele Anfragen gesendet („Ratenbegrenzung“).

    • Beispiel: Implementierung einer API-Ratenbegrenzung, um Missbrauch zu verhindern.

5. 5xx-Serverfehler

Diese Statuscodes weisen auf Fälle hin, in denen der Server weiß, dass ein Fehler aufgetreten ist oder er aus anderen Gründen nicht in der Lage ist, die Anfrage auszuführen.

  • 500 Interner Serverfehler: Eine allgemeine Fehlermeldung, die darauf hinweist, dass der Server auf einen unerwarteten Zustand gestoßen ist, der ihn daran hinderte, die Anfrage zu erfüllen.

    • Beispiel: Im serverseitigen Code tritt eine nicht behandelte Ausnahme auf.
  • 501 nicht implementiert: Der Server unterstützt nicht die Funktionalität, die zur Erfüllung der Anfrage erforderlich ist.

    • Beispiel: Verwendung einer neuen HTTP-Methode, die der Server nicht erkennt.
  • 502 Bad Gateway: Der Server hat, während er als Gateway oder Proxy fungierte, eine ungültige Antwort vom Upstream-Server erhalten.

    • Beispiel: Ein Reverse-Proxy-Server kann keine Verbindung zum Ursprungsserver herstellen.
  • 503 Dienst nicht verfügbar: Der Server kann die Anfrage derzeit aufgrund vorübergehender Überlastung oder Wartungsarbeiten nicht verarbeiten.

    • Beispiel: Ein Server wird gerade gewartet oder es herrscht hoher Datenverkehr.
  • 504 Gateway-Zeitüberschreitung: Der Server, der als Gateway oder Proxy fungierte, erhielt keine rechtzeitige Antwort vom Upstream-Server.

    • Beispiel: Beim Warten auf eine Antwort von einer Drittanbieter-API tritt eine Zeitüberschreitung auf.

Best Practices für die Verwendung von HTTP-Statuscodes

  1. Seien Sie spezifisch: Verwenden Sie den spezifischsten Statuscode, der auf die Situation zutrifft. Dies hilft Kunden, genau zu verstehen, was passiert ist und wie sie reagieren sollen.

  2. Konsistente Verwendung: Sorgen Sie für Konsistenz bei der Verwendung von Statuscodes in Ihrer gesamten API. Dies erleichtert Entwicklern die Arbeit mit Ihrer API.

  3. Geben Sie zusätzliche Informationen an: Fügen Sie zusammen mit dem Statuscode gegebenenfalls eine detaillierte Fehlermeldung in den Antworttext ein. Dies kann beim Debuggen helfen und die Entwicklererfahrung verbessern.

  4. Sicherheitsüberlegungen: Seien Sie vorsichtig, wenn Sie nicht zu viele Informationen in Fehlerantworten preisgeben, insbesondere bei 4xx- und 5xx-Fehlern. Vermeiden Sie es, sensible Details über Ihre Systemarchitektur oder -implementierung preiszugeben.

  5. Dokumentation: Dokumentieren Sie klar und deutlich, welche Statuscodes Ihre API unter welchen Umständen verwendet. Dies hilft API-Konsumenten zu verstehen, wie sie unterschiedliche Antworten interpretieren und verarbeiten.

Durch das Verständnis und die richtige Implementierung von HTTP-Statuscodes können Entwickler robustere, klarere und benutzerfreundlichere APIs und Webanwendungen erstellen. Diese Codes dienen als wichtiges Kommunikationstool zwischen Clients und Servern und tragen dazu bei, die Fehlerbehandlung zu rationalisieren und die allgemeine Systemzuverlässigkeit zu verbessern.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/shanu001x/the-ultimate-reference-for-http-status-codes-in-api-design-77b?1 Bei Verstößen wenden Sie sich bitte an Study_golang@163 .com, um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3