Sobes.tech
Junior

Quelles sont les codes de réponse HTTP et en quoi diffèrent-ils les uns des autres?

sobes.tech IA

Réponse de l'IA

Les codes de réponse HTTP sont des nombres à trois chiffres renvoyés par le serveur en réponse à une requête du client. Ils indiquent le statut du traitement de la requête et fournissent des informations sur la réussite, une erreur ou la nécessité d'une action supplémentaire.

Les codes sont divisés en cinq classes :

  • 1xx (Informatifs): La requête a été acceptée, le traitement continue.
  • 2xx (Réussis): La requête a été reçue, comprise et traitée avec succès.
  • 3xx (Redirections): Le client doit effectuer des actions supplémentaires pour compléter la requête.
  • 4xx (Erreurs du client): La requête contient une erreur de syntaxe ou ne peut pas être traitée.
  • 5xx (Erreurs du serveur): Le serveur n'a pas pu traiter la requête.

Les différences entre les codes résident dans leur sémantique, liée aux différentes étapes du traitement de la requête et aux résultats possibles.

Exemples de codes couramment utilisés :

Code Description Classe
200 OK Réussis
201 Créé Réussis
301 Déplacé de façon permanente Redirections
302 Trouvé Redirections
400 Requête incorrecte Erreurs du client
401 Non autorisé Erreurs du client
403 Interdit Erreurs du client
404 Non trouvé Erreurs du client
500 Erreur interne du serveur Erreurs du serveur
503 Service indisponible Erreurs du serveur
// Exemple de traitement de réponse HTTP en JavaScript
fetch('/api/data')
  .then(response => {
    if (response.ok) { // Vérification du statut réussi (2xx)
      return response.json();
    } else {
      // Traitement des erreurs basé sur le code de statut
      console.error(`Erreur HTTP : ${response.status}`);
      if (response.status === 404) {
        console.error('Ressource non trouvée.');
      }
      throw new Error(`Erreur HTTP : ${response.status}`);
    }
  })
  .then(data => {
    console.log('Données reçues :', data);
  })
  .catch(error => {
    console.error('Erreur lors du chargement des données :', error);
  });