Contenu

    Réponse du serveur 400 Bad Request

    HTTP Statut 400 (Bad Request)

    Le code de statut HTTP 400 indique que le serveur ne peut pas traiter la requête en raison d'une syntaxe incorrecte. Cette erreur peut survenir pour plusieurs raisons, et comprendre ces causes permet aux développeurs de résoudre efficacement les problèmes qui se présentent.

    400 - Bad Request

    Causes de l'erreur 400

    • Synthaxe incorrecte de la requête

      Exemple : URL mal formé, tel que http://example.com/?param=val&, où un paramètre attendu est manquant.

    • Absence de paramètres obligatoires

      Exemple : omission d'un paramètre dans le corps de la requête, comme un champ nécessaire dans un formulaire.

    • Données incorrectes dans les paramètres

      Exemple : transmission d'une chaîne de caractères au lieu d'une valeur numérique, comme age=twenty au lieu de age=20.

    Exemples pratiques

    1. Format de données incorrect

      Exemple : envoi de données au format JSON sans spécifier les en-têtes appropriés, ce qui provoque une incompréhension du serveur.

    2. URL trop longue

      Exemple : dépassement de la limite de longueur d'URL lors de l'envoi de données, ce qui entraîne une erreur 400.

    3. Erreurs d'encodage

      Exemple : utilisation d'un encodage de caractères non pris en charge, rendant les données illisibles pour le serveur.

    Correction de l'erreur 400 dans différents langages de programmation

    Langage Exemple de code
    JavaScript (Node.js)
    app.post('/api/data', (req, res) => {
                        if (!req.body.name) {
                            return res.status(400).send('Nom requis');
                        }
                        // traitement de la requête
                    });
    Python (Flask)
    from flask import Flask, request, jsonify
    
                    app = Flask(__name__)
    
                    @app.route('/api/data', methods=['POST'])
                    def data():
                        if 'name' not in request.json:
                            return jsonify({'error': 'Nom requis'}), 400
                        // traitement de la requête
                    
    PHP
    if (empty($_POST['name'])) {
                        http_response_code(400);
                        echo 'Nom requis';
                        exit;
                    }
                    // traitement de la requête
                    

    Une gestion correcte et un diagnostic précis des causes de l'erreur 400 permettent aux développeurs d'améliorer la qualité de leurs applications et de garantir un fonctionnement plus fluide avec les API.

    Codes supplémentaires

    CodeDescription
    400.1En-tête de destination non valide - L'en-tête de destination dans la requête est incorrect.
    400.2En-tête de profondeur non valide - L'en-tête de profondeur n'est pas formaté correctement.
    400.3En-tête If non valide - L'en-tête 'If' n'est pas valide.
    400.4En-tête Overwrite non valide - L'en-tête Overwrite n'est pas valide.
    400.5En-tête de traduction non valide - L'en-tête de traduction n'est pas valide.
    400.6Corps de requête non valide - Le corps de la requête est incorrect.
    400.7Longueur de contenu non valide - L'en-tête de longueur de contenu est mal formé.
    400.8Délai d'expiration non valide - L'en-tête de délai d'expiration contient une valeur non valide.
    400.9Jeton de verrouillage non valide - Le jeton de verrouillage dans le La requête n'est pas valide.
    400.10En-tête X-Forwarded-For (XFF) non valide - L'en-tête XFF est mal formé.
    400.11Requête WebSocket non valide - La requête WebSocket n'est pas valide.
    400.601Requête client incorrecte (ARR) - La requête client est mal formée.
    400.602Format d'heure non valide (ARR) - Le format d'heure est incorrect.
    400.603Erreur de plage d'analyse (ARR) - La plage ne peut pas être analysée.
    400.604Client disparu (ARR) - Le client s'est déconnecté.
    400.605Nombre maximal de transferts (ARR) - Le nombre maximal de transferts a été atteint.
    400.606Erreur de compétition asynchrone (ARR) - Il y a eu une erreur due à une concurrence asynchrone.