Codes d'état HTTP dans les réponses de l'API : ce qu'ils sont et ce qu'ils signifient
Les codes d'état HTTP, ou codes d'état, sont des codes à trois chiffres qui indiquent le résultat d'une communication entre des clients et des serveurs utilisant le protocole HTTP, tels que les navigateurs web et les applications API.
Ces codes, qui restent généralement cachés à l'utilisateur du service, permettent au client de connaître le résultat de sa requête avant même d'analyser la charge utile, c'est-à-dire la réponse proprement dite.
Parmi les codes HTTP les plus courants, on trouve le statut HTTP 404, qui apparaît lorsqu'on essaie de se connecter à une page web qui n'existe pas, et le statut HTTP 500, qui indique une erreur du serveur. Cependant, même les requêtes réussies ont leurs propres codes: voyons ce qu'ils sont et ce qu'ils indiquent.
Le protocole HTTP est une méthode de transport de l'information largement utilisée dans les architectures client-serveur, qui a également trouvé une application parfaite dans les appels API REST.
Dans les appels API, il se passe exactement la même chose que lorsque, en surfant sur Internet, un client HTTP demande une ressource à un serveur : lorsque le client API fait sa demande, le serveur répond en envoyant le code d'état HTTP indiquant le type de réponse. Ce qui change, c'est le contenu de la réponse, ou payload, qui au lieu de contenir une page HTML contient un json.
Les codes HTTP sont identiques pour toutes les applications qui communiquent via ce protocole et font partie de la réponse d'un serveur HTTP.
Lorsqu'un client de l'API interroge un serveur, il reçoit en retour une réponse qui contient diverses informations et qui, outre les spécifications techniques, comprend quelques sections fondamentales:
Les codes d'état HTTP font partie intégrante de la réponse de l'API: leur transmission permet au client de savoir ce qui s'est passé pendant le transfert avant même d'analyser le contenu de la réponse. Un code d'état HTTP 403, par exemple, indique que le client est authentifié mais qu'il ne peut pas accéder à la ressource demandée. Un code d'état 200, en revanche, signifie que la demande a abouti et que le serveur a renvoyé les données demandées.
Les codes d'état HTTP sont divisés en cinq classes, chacune commençant par un chiffre indiquant le type de réponse:
Chaque type de réponse comprend à son tour plusieurs messages possibles. Voici les plus courants.
Les messages d'information sont envoyés lorsque la demande a été reçue par le serveur et que le traitement de la demande se poursuit : ils sont souvent utilisés pour éviter que le client n'attende une réponse, mais ils peuvent également indiquer que des informations supplémentaires doivent être envoyées pour compléter la demande.
Les messages de succès indiquent que la demande a été reçue et traitée avec succès. Cela ne signifie pas nécessairement que le client obtiendra ce qu'il voulait : la réponse du serveur peut même être dépourvue de contenu.
Les codes HTTP commençant par 3 indiquent que le client doit effectuer d'autres actions pour satisfaire la demande : ils sont utilisés, par exemple, lorsque la ressource demandée a été déplacée vers un autre emplacement.
Les codes d'erreur commençant par le chiffre 4 sont peut-être les plus redoutés par les utilisateurs de clients d'API, car ils indiquent que la demande ne peut être satisfaite en raison d'une erreur de la part du client, qui peut avoir fait une erreur de syntaxe ou ne pas avoir les autorisations nécessaires. Les codes d'état HTTP 400 les plus courants sont les suivants :
Les messages d'erreur ne concernent pas uniquement le client: il existe également des erreurs internes au serveur, qui sont indiquées par un code à trois chiffres commençant par 5. Les plus courantes sont: