Inhoud

    Serverrespons 406 Not Acceptable

    Wat is statuscode 406

    Statuscode 406 (Not Acceptable) geeft aan dat de server niet in staat is om een reactie te bieden in een formaat dat de client heeft aangegeven in de 'Accept'-header. Dit kan het gevolg zijn van verschillende factoren, waaronder onjuiste headers in het verzoek of het ontbreken van ondersteuning voor het gevraagde formaat aan de serverzijde.

    406 - Not Acceptable

    Definitie en belangrijkste oorzaken van optreden

    De 406-statuscode komt voor wanneer de server niet kan voldoen aan de eisen van de client met betrekking tot het type gegevens dat moet worden geretourneerd. Dit kan zich voordoen in situaties waarin de client specifieke formaten voor de respons heeft opgegeven, maar de server deze formaten niet kan genereren of ondersteunen.

    Situaties waarin de client dit code kan tegenkomen

    • Bij het opvragen van een afbeelding in een niet-ondersteund formaat.
    • Bij het opvragen van een document met een onjuist opgegeven formaat.
    • Wanneer de 'Accept'-header verkeerd is ingesteld, wat leidt tot incompatibiliteit met de server.

    Verschil met andere statuscodes

    Het is belangrijk om het verschil tussen statuscode 406 en andere vergelijkbare statuscodes te begrijpen, zoals 415 (Unsupported Media Type). Terwijl 406 aangeeft dat het gevraagde formaat niet acceptabel is, betekent 415 dat het formaat dat de client probeert te verzenden niet wordt ondersteund door de server.

    Statuscode Bedeuting
    406 Niet acceptabel; de server kan geen respons geven in het gevraagde formaat.
    415 Niet ondersteund media-type; de server accepteert het verzonden formaat niet.

    Praktische voorbeelden

    Voorbeeld 1: Fout bij het opvragen van een afbeelding

    Stel dat een client een afbeelding in het formaat 'image/webp' probeert op te vragen, maar de server ondersteunt alleen 'image/jpeg' en 'image/png'. In dit geval zal de server reageren met statuscode 406.

    Voorbeeld 2: Fout bij het opvragen van een tekstdocument

    Een client probeert een tekstdocument op te vragen met de 'Accept'-header ingesteld op 'application/pdf', terwijl de server alleen 'text/plain' en 'application/json' ondersteunt. Dit resulteert ook in een 406-statuscode.

    Voorbeeld 3: Onjuiste 'Accept'-header

    Wanneer een client een API aanroept met een 'Accept'-header zoals 'application/xml, application/json;q=0.8', maar de server ondersteunt alleen 'text/', kan dit leiden tot een 406-fout.

    Fouten corrigeren in verschillende programmeertalen

    JavaScript (Node.js)

    Hier is een voorbeeld van code die een 406-fout kan genereren:

    
    const express = require('express');
    const app = express();
    
    app.get('/data', (req, res) => {
        res.status(406).send('Not Acceptable');
    });
    

    Oplossing: Controleer en stel de 'Accept'-header correct in voordat je het verzoek verzendt.

    Python (Flask)

    Een voorbeeld van een API-aanroep die een 406-status kan retourneren:

    
    from flask import Flask, request, jsonify
    
    app = Flask(__name__)
    
    @app.route('/data')
    def data():
        return jsonify({'error': 'Not Acceptable'}), 406
    

    Oplossing: Voeg ondersteuning toe voor het benodigde responsformaat.

    PHP

    Hier is een voorbeeld van een PHP-code die een 406-fout kan veroorzaken:

    
    header('HTTP/1.1 406 Not Acceptable');
    echo 'Not Acceptable';
    

    Oplossing: Pas de headers aan of configureer de routes om de gewenste formaten te ondersteunen.

    Aanbevelingen ter voorkoming van statuscode 406

    • Controleer de 'Accept'-headers voordat je het verzoek indient.
    • Configureer de server om verschillende responsformaten te ondersteunen.
    • Voer tests uit met verschillende verzoekparameters om de compatibiliteit te waarborgen.

    Praktisch gebruik van statuscode 406

    Deze statuscode kan nuttig zijn voor ontwikkelaars, omdat het hen helpt te begrijpen waarom een verzoek mislukt is. Het biedt ook richtlijnen voor API-gebruikers om hun verzoeken te corrigeren en te optimaliseren.

    Het is cruciaal om de 'Accept'-headers correct te verwerken. Dit verhoogt de kans op succesvolle interacties tussen de client en de server en minimaliseert de kans op fouten zoals statuscode 406.

    Aanvullende codes

    CodeBeschrijving
    406.0Niet acceptabel - Het gevraagde MIME-type is niet acceptabel.