Ich baue einen Webdienst auf, der in diesem speziellen Fall dazu dient, Informationen über einen Kunden abzufragen.
Nehmen wir an, der Argumentation halber, dass der Web-Treffer für die Suche lautet:
GET /patrons/619 HTTP/1.1
Wenn der Gönner gefunden wird, gebe ich den Code 200 zurück:
HTTP/1.1 200 OK
Wenn Sie eine Kontonummer auslassen oder eine Kontonummer angeben, die keine Nummer ist, gebe ich 400 zurück. Zum Beispiel die folgenden fehlerhaften Anfragen:
GET /patrons HTTP/1.1
GET /patrons/ HTTP/1.1
GET /patrons/qwerty HTTP/1.1
GET /patrons/kylie%20guenin HTTP/1.1
alle geben den Fehler 400 (Bad Request) zurück, z.B.:
HTTP/1.1 400 Invalid patron number
Ich möchte einen Statuscode haben für Kunde nicht gefunden der als HTTP-Statuscode zurückgegeben wird. Zum Beispiel:
GET /patrons/1322 HTTP/1.1
HTTP/1.1 404 Not Found
Ich habe darüber nachgedacht, die 404 (Nicht gefunden) die es eine gültige Antwort (die angeforderte Ressource wurde wirklich und wahrhaftig nicht gefunden.) Aber ich befürchte, dass Leute, die es debuggen, denken könnten, dass es bedeutet, dass sie /patrons/
falsch.
Fällt jemandem ein anderer http-Statuscode ein, den ich verwenden könnte?
Aktualisierung: ich beäuge
204 No Content
The server successfully processed the request, but is not returning any content.
Was sagen Sie dazu?
Vergessen Sie nicht, dass nicht alle HTTP-Server HTML-Inhalte ausliefern. Wenn ein IIS-Webserver nach einer Ressource namens:
GET /MyStartPage.html HTTP/1.1
Dann muss der HTTP-Server entscheiden, womit er antworten soll. Auf den meisten Web-Servern wird eine Ressource namens /MeineStartSeite.html entspricht einer Datei auf der Festplatte.
StackOverflow hingegen schon:
GET /posts/1027301 HTTP/1.1
Wenn diese Ressource nicht existiert, sollte der Webserver (zu Recht) 404 zurückgeben.