In Delphi verwende ich Indys TIdHTTPWebBrokerBridge
gekoppelt mit zum Senden/Empfangen von Daten über HTTP. Auf dem Server habe ich keine schicke Handhabung, ich antworte immer nur mit einem einfachen Content-Stream. Wenn Probleme auftreten, gebe ich nur Informationen zu diesem Problem im Antwortinhalt zurück (z. B. Authentifizierung fehlgeschlagen, ungültige Anforderung usw.). Kann ich also auf der Client-Seite annehmen, dass jede erfolgreiche Anfrage, die ich an diesen Server mache, immer einen Antwortcode von 200 (OK) hat?Gibt jede erfolgreiche HTTP-Anfrage immer den Statuscode 200 zurück?
Ich frage mich, weil auf dem Client die Anforderungen in Funktionen verpackt sind, die nur einen Boolean für den Erfolg der Anfrage zurückgeben.
Innerhalb dieser Funktion:
IdHTTP.Get(SomeURL, AStream);
Result:= IdHTTP.ResponseCode = 200;
Diese Funktion verarbeitet jede und jede Anfrage, die möglicherweise Daten holen können. Wenn in der Anforderung Probleme aufgetreten sind, sollte diese Funktion False zurückgeben. In meinem Szenario, da ich immer irgendeinen Inhalt auf dem Server zurückgebe, würde der Client in dieser Funktion immer einen Antwortcode von 200 erhalten?
Ich denke, die wirkliche Frage ist, wenn ich immer eine Art von Inhalt zurückgeben und alle Ausnahmen auf dem Server behandeln, dann wird der Server immer Statuscode von 200 für jede Anfrage zurückgeben?
Ich akzeptiere stattdessen Ihre Antwort, da sie direkt auf mein genaues Szenario und nicht auf allgemeine HTTP-Standards abzielt. Die anderen Antworten, obwohl sie sehr wahr sind, gehen davon aus, dass der Server verschiedene Antworten basierend auf Standards beantwortet, aber mein Server ist kein Standard. Tatsächlich mache ich es mir bewusst schwer, mit einer Sicherheitsmaßnahme zu arbeiten. –
Plus Sie sind eine wertvolle Ressource, weil Sie ein Teil des Indy-Teams sind: D –