WebResponse.StatusCode
redirigé depuis WebResponse.SetStatusCode
| WebResponse = class static (TObject) | Interface de WebResponse | Exemples de WebResponse |
Qubes 6.2 Code de status de la réponse
Syntaxe
property StatusCode: Integer write SetStatusCode
Remarques
Il est très important de fournir un code de status correct à chaque réponse de WebScript, car cela rend exploitable ou non les infos du log HTTP. Par ailleurs certain code déterminent le comportements du navigateur a la réponse ( code de redirection par exemples ).
Les principaux codes de statut et les recommandations d'usage sont les suivants :
- 200 : OK la requête a réussi, c'est la valeur par défaut si le WebScript se termine sans erreur et si le WebResponse.StatusCode n'a pas été affecté explicitement.
- 400 : Bad Request, c'est le statut a renvoyer si la requête effectué est incorrect, par exemple si un paramètre obligatoire est omis ou a une valeur aberrante.
- 403 : Forbidden, ce statut est a utiliser lorsque l'utilisateur connecté n'a pas les droits nécessaire a l'exécution du WebScript, ou si une clef d'authentification est invalide, a ne pas confondre avec le code 401 qui est a utiliser si une authentification est nécessaire pour accéder a la page.
- 500 : Internal Server Error, c'est le statut en cas d'erreur du WebScript, ce statut sera automatiquement affecté si le WebScript se termine par une exception. Ce statut ne doit en principe jamais être affecté explicitement par le code du WebScript.
- 503 : Service Unavailable, ce statut est celui a renvoyer pour les requetes avec une semaphore de sérialization, si la sémaphore ne peut pas être obtenue.
Il existe d'autres codes de statut :
Voir https://en.wikipedia.org/wiki/List_of_HTTP_status_codes pour plus d'informations et la liste complète.
Voir aussi WebResponse.SetStatusPlainText.
Exemples
Function VerifyParams : Boolean;
begin
Result := WebRequest.QueryField['ID'].ToIntegerDef(0) > 0;
end;
if CurrentUserHasAccessTo('Magic') then begin // seulement les admins
if VerifyParams then begin
// traitement fonctionnel ici, le code 200 sera renvoyé par défaut si pas d'erreurs, le 500 en cas d'exception avec le texte de l'exception automatiquement dans la réponse par défaut gérée par le système.
end else WebResponse.StatusCode := 400; // Bad Request on peut aussi en plus faire un message contextualisant l'erreur dans la réponse
end else WebResponse.StatusCode := 403; // on renvoit le code Forbiddenn