Server-side en client-side fouten kunnen af en toe ontstaan en worden meestal HTTP responses of statuscodes genoemd. De “406 error” of ook wel “406 Not Acceptable” fout is zo’n HTTP respons.

Je kan de 406 fout zien wanneer je een website probeert te bezoeken. Nog erger is het natuurlijk als het om je eigen website gaat. Dit kan enigszins irritant zijn voor een gemiddelde internetgebruiker, maar is zo’n beetje de ergste nachtmerrie als je de eigen van de website of toepassing bent. Naast dat het er niet zo professioneel en zelfs verwarrend uitziet, zal elke negatieve HTTP responscode, waaronder de 406 fout, ervoor zorgen dat je bezoekers en dus omzet misloopt.

Daarom zal dit artikel je de basis uitleggen van de “406 Not Acceptable” error, hoe deze fout ontstaat, hoe je het kan oplossen, en de maatregelen die je kan nemen om de fout in de toekomst te voorkomen.

Bekijk onze gids over het oplossen van een 406 foutmelding en vind de oorzaak van het probleem

Wat is de 406 fout?

Het goede nieuws is dat de HTTP-fout “406 Not Acceptable” lang niet zo vaak voorkomt als de 404 serverfout (meestal een niet-bestaande webpagina), of zelfs als de 301 of 500 HTTP-foutmeldingen. Daarom zal je deze gelukkig niet zo vaak zien.

Alhoewel de 406 fout niet zo vaak voorkomt, kan het wel een probleem opleveren voor je website. Het ziet meestal ongeveer zo uit:

Voorbeeld van de “406 Not Acceptable” foutmelding.
Voorbeeld van de “406 Not Acceptable” foutmelding.

De melding geeft meestal aan:

Not Acceptable

An appropriate representation of the requested resource could not be found on this server.

Soms staat er bij welke “requested resource” of opgevraagd bestand het probleem vormt, en soms staan er nog andere meldingen of informatie aan het einde:

Sommige 406 foutmeldingen tonen welke resource problematisch is.
Sommige 406 foutmeldingen tonen welke resource problematisch is.

Het precieze uiterlijk en de tekst van de 406 foutmelding hangen af van de website, host en browser waarmee de website bezocht wordt. Het kan zijn dat de 406 fout laat zien waar het probleem vandaan komt. Soms zie je ook alleen het bericht “406 Not Acceptable”, zonder dat er informatie bij staat waarmee je het probleem kan oplossen.

Laten we even doen alsof we in een perfecte wereld leven waarin browsers normale taal spraken, in plaats van cryptische foutmeldingen. Dan zou de browser ongeveer zoiets zeggen:

Hallo, ik ben je browser. Ik probeer de webpagina te tonen, maar toen kwam ik één van deze twee problemen tegen:

  1. De server van de website stuurde me een bestand in een verkeerd bestandstype, dus ik moest het bestand weigeren.
  2. De server van de website voldoet niet aan beveiligingseisen of heeft een aantal instellingen verkeerd staan.

Zou je daarom kunnen zorgen dat de server aan deze eisen voldoet, of een bestandstype gebruikt dat ik kan accepteren? Mocht je je dat afvragen, dit zijn de bestandstypen die ik wél kan lezen.

Waren browsers maar zo vriendelijk!

In feite komt het er dus op neer dat er iets fout gaat in de communicatie tussen de server en de browser die de webtoepassing moet weergeven. De browser kan hierbij niet lezen wat er verzonden wordt, of kan de data niet verifiëren, omdat er niet aan een aantal eisen voldoen wordt.

Nu moeten we dus alleen nog enkele vragen beantwoorden om te achterhalen wat de oorzaak van de miscommunicatie is.

Wat veroorzaakt de 406 fout?

Elke keer dat je een webpagina opent zal je browser (bijvoorbeeld Safari, Firefox, Brave, Chrome of Internet Explorer) een verzoek naar de server van de pagina sturen om de benodigde content en database bestanden van de site te krijgen. De browser werkt als boodschapper tussen jou en de server en vertelt de server wat jij graag wil zien, en komt daarna hopelijk terug met de juiste informatie.

Tijdens dat eerste verzoek vertelt de browser aan de server welke bestandstype de browser kan lezen. Dit heet dan ook een Accept header request, waardoor de server de bestanden in het juiste bestandsformat kan afleveren om de website of webtoepassing te tonen, te beginnen met de header.

Soms stuurt de server een antwoord dat niet in het goede format staat of dat een regel van de browser of bezoekende computer overtreedt. In dat geval zal er een 406 foutmelding verschijnen in de browser, om aan te geven dat de server niet de juiste informatie heeft gegeven.

Enkele voorbeeld van “slechte” bestandstypen en “overtredingen” van regels die bij header verzoeken kunnen ontstaan:

  • Accept-ranges: Sommige servers gebruiken beveiligingsmaatregelen, en staan bijvoorbeeld alleen een bepaald bereik qua bestandsgrootte toe in de respons. Wanneer de respons te ver buiten dat limiet ziet, zie je de 406 fout.
  • Accept-encoding: Een deel van de header dat bedoeld is om bestanden te comprimeren, zodat ze sneller van de server naar de browser verzonden worden. Sommige manieren en formats van comprimeren worden echter niet toegestaan, wat ook een 406 foutcode oplevert.
  • Accept-charset: Gaat over een set van karakters of hoe de tabellen van de site code kunnen accepteren en verwerken (zoals CSS en HTML) en er leesbare tekst van kunnen maken. Er zijn zoveel karakters, talen en symbolen dat je zo onmogelijk allemaal kan aanbieden. De standaardtabel heet ISO-8859, maar er zijn ook andere belangrijke tabellen. Af en toe worden er nieuwe karaktertabellen gepubliceerd om nieuwe talen of karakters te faciliteren.
  • Accept-language: Dit is eigenlijk een andere naam voor Accept-charset, met een focus op internationale talen.
  • MIME type violation: Soms vraagt de browser een specifiek MIME-type van de server. MIME-types zijn onderdelen van de content, zoals JPEG afbeeldingen, video-formats, of gewone tekst. Als de server het gewenste MIME-type niet ondersteunt, bijvoorbeeld JPEG afbeeldingen, krijg je een 406 fout te zien.

De primaire reactie op een 406 fout is het controleren van de broncode op problemen in de Accept-, Request- en Response-headers.

De makkelijkste manier om Accept- en Response-headers te bekijken is door een webpagina te openen in je browser, met rechts te klikken en te kiezen voor Inspect.

Ga dan naar Network > Headers om alle verzoeken van deze pagina te bekijken.

Rechtsklik en kies Inspect in de browser, en ga vervolgens naar de tabblad Network en Headers.
Rechtsklik en kies Inspect in de browser, en ga vervolgens naar de tabblad Network en Headers.

Je kan meestal een willekeurig verzoek van de lange lijst kiezen om te zien wat de Request- en Response-headers voor dat specifieke verzoek te bekijken.

Klik op een verzoek in de lijst om dingen als Response- en Request-headers te zien.
Klik op een verzoek in de lijst om dingen als Response- en Request-headers te zien.

Je kan ook je webdeveloper vragen om eens naar de broncode te kijken. Maar het controleren van de broncode is veel makkelijker wanneer je de juiste tools hebt voor het debuggen en opruimen van je database, waar we zometeen uitgebreider naar zullen kijken.

Zoals eerder gezegd geeft een “406 Not Acceptable” fout aan dat de client een goed verzoek naar de server heeft gestuurd, maar dat er bij dat verzoek ook een bepaalde eis voor de server zat. Deze eis zat verpakt in het initiële verzoek in de vorm van een HTTP Accept-header.

Hierdoor kunnen we de mogelijke oorzaken al flink beperken:

  1. De server heeft niet het juiste MIME-type of juiste bestandsformat verstuurd, zoals een JPEG of mp4 video.
  2. De server gebruikte niet de juiste taal (Accept-language). Zo kan het bijvoorbeeld zijn dat het antwoord van de server in het Duits was, terwijl de browser om een Franse versie vroeg.
  3. De server heeft een onacceptabele compressiemethode of format gebruikt in het antwoord op het Accept-encoding
  4. De server heeft te veel bytes teruggestuurd, waardoor het antwoord niet voldeed aan het Accept-ranges
  5. De server stuurde tekens terug niet niet begrijpelijk waren, wat een probleem met het Accept-charset verzoek van de browser opleverde.

Er zijn nog enkele andere mogelijke oorzaken van de 406 error, maar die zijn vrij uitzonderlijk. De bovenstaande lijst zie je het meest, op volgorde van hoe vaak de oorzaken voorkomen. De eerste twee oorzaken zie je veel vaker dan de rest, dus er is een goede kans dat je bij het oplossen van het probleem moet focussen op een mogelijke MIME-type overtreding of een probleem met Accept-language.

In het algemeen moeten eigenaars op de hoogte zijn van deze problemen en overtredingen met formats, aangezien iets in jouw websitebestanden het probleem veroorzaakt. Zulke situaties komen meestal voor door menselijke fouten, zoals het per ongeluk intypen van verkeerde code, het verwijderen van benodigde code of bestanden, of het verkeerd instellen van de server. De 406 fout verschijnt ook bij bepaalde beveiligingsinstellingen of wanneer bepaalde regels het versturen van content vanaf de server blokkeren.

Het oplossen van de 406 fout

Het is verstandig om eerst een backup van je website of toepassing te maken voordat je aan de slag gaat om de 406 fout op te lossen. Er is altijd de mogelijkheid dat je problemen veroorzaakt wanneer je aan de slag gaat met de broncode van je website, dus zorg ervoor dat je backups hebt van je database en website.

Maak een volledige backup van alles in de database tot de mediabestanden en websitebestanden. Als je een klant van Kinsta bent, kan je dit eenvoudig doen via de backupfunctie in MyKinsta, waardoor je hele website in een apart bestand opgeslagen wordt, met een handige Restore knop, mocht je die later nodig hebben:

Voer elk uur, elke dag of handmatige backups uit in het MyKinsta dashboard.
Voer elk uur, elke dag of handmatige backups uit in het MyKinsta dashboard.

Nu we beter begrijpen waar de 406 fout vandaan komt, is het tijd dat we het probleem gaan oplossen en kijken naar manieren om de fout in de toekomst te voorkomen.

Denk bijvoorbeeld aan het oplossen van oorzaken aan de kant van de client (waarbij een bezoeker een fout maakt of een slechte computer gebruikt), server-side oorzaken, en problemen door het platform, zoals het gebruik van kapotte plugins.

Zorg ervoor dat de URL klopt

De eerste oplossing klinkt als een enorme open deur, maar is verrassend vaak een snelle oplossing, waarbij je eerst let op alle client-side oorzaken (oftewel, de computer van de bezoeker).

In dit geval zou je eigenlijk een 404 fout moeten zien in plaats van een 406 foutcode, maar het kan zijn dat je de “406 Not Acceptable” foutmelding ziet wanneer de website URL niet klopt, maar wel valide is. Er is dan alleen iets mis met de manier waarop je browser het verzoek vertaalt. Dit kan bijvoorbeeld komen doordat er “JSON” of “PHP” aan het einde van een URL wordt toegevoegd, waardoor het wordt opgevat als een verzoek voor die specifieke formats, terwijl de client dat helemaal niet per se nodig heeft.

Om het probleem op te lossen kan je dus de gebruikte URL nog eens controleren. Probeer het nog eens in te typen, of ga even naar een ander subdomein, om te controleren of het de enige pagina op de website is die niet getoond kan worden.

Een 406 melding wordt in principe gezien als een client-side fout (alhoewel het vaak ook aan de server of het platform ligt), dus dit is je eerste actie om te controleren of er iets mis gaat aan de kant van de bezoeker.

Reset je apparaten en netwerken

Een andere probleem aan de kant van de client draait om diezelfde Accept-headers die door de computer van de gebruiker verstuurd worden, maar waarbij het platform niet kan voldoen aan het verzoek. Bij dergelijke platforms gaat het bijvoorbeeld vaak om gaming systemen of media-gerichte systemen zoals Netflix, of muziekplatforms zoals Spotify.

Simpel gezegd probeer je dan bijvoorbeeld in te loggen op een dienst als Netflix voor je favoriete televisieserie, en krijg je een 406 fout te zien. In zo’n geval ligt het probleem eigenlijk altijd bij de client. Het is dan meestal de computer, netwerk of andere apparaat dat je gebruikt hebt om het platform te bezoeken.

Alhoewel het in principe met elk platform kan gebeuren, zijn dit enkele platforms die vaker 406 fouten laten zien:

  • Hulu
  • Google Play
  • Square Enix Games
  • Netflix
  • Xbox
  • Windows (meestal bij gaming)

Deze lijst is zeker niet compleet, maar geeft je een idee waar je de 406 fout zomaar tegen zou kunnen komen.

Dergelijke platforms zijn vaak vrij complex met allerlei beperkingen, en die beperkingen zijn allemaal afhankelijk van je locatie en netwerkconfiguratie. Er is een goede kans dat je een dergelijke fout tegenkomt door al deze onderdelen die goed samen moeten werken.

Alhoewel we niet de problemen van elk specifieke platform kunnen oplossen, kun je de volgende aanbevelingen gebruiken om veel van dit soort fouten op te lossen:

  • Ga naar de hoofdwebsite om de status van de server van het platform te controleren. Het kan gewoon zijn dat hun server platligt.
  • Herstart je computer, spelcomputer, apparaat voor streaming, of andere apparaten.
  • Haal de netwerkkabel uit je gebruikte apparaten los, wacht een paar minuten, stop de kabel er weer in, en kijk of de foutmelding nu weg is.
  • Controleer dat de gebruikte app de nieuwste versie heeft. Kijk ook of er nog firmware updates voor je apparaten beschikbaar zijn.
  • Reset je netwerk (de wifi of internetverbinding via je router).
  • Kijk of je even kan wisselen van een draadloos netwerk naar een bedrade netwerkverbinding.
  • Alhoewel dit niet altijd mogelijk is, kan je proberen of je dezelfde fout krijgt op een andere computer of apparaat. Zorg er daarbij voor dat het apparaat hetzelfde netwerk gebruikt. Als je de fout niet krijgt op een ander apparaat, ligt het aan het originele apparaat of gebruikte netwerk.

Mocht dit allemaal niet lukken, dan kan je naar een zoekmachine gaan, en de naam van het platform intypen, samen met “+406 error code” voor platformspecifieke tips. Hier krijg je vaak documentatie of forums te zien met mensen die dit probleem ook al eens hebben gehad.

Zet je laatste CMS wijzigingen terug

Tijd om te gaan kijken naar het systeem dat je gebruikt voor je websites of toepassingen. Het kan zijn dat je Content Management System, zoals WordPress, de directe oorzaak is van een “406 Not Acceptable” fout, door een probleem in de bestanden van je website.

Wanneer je WordPress of een ander CMS gebruikt, kan je even controleren wanneer je de laatste update hebt uitgevoerd. WordPress heeft een robuuste infrastructuur die dergelijke fouten zou moeten voorkomen.

Maar er kunnen specifieke plugins, thema’s of handmatige code zijn die problemen opleveren wanneer de bestanden van de website niet voldoen aan bepaalde verzoeken van een server of client. Een eenvoudige upgrade naar de nieuwste versie van je CMS zou zomaar het probleem kunnen oplossen.

Om te controleren of het aan je CMS ligt, kan je eerst de meest recente upgrades van de kernbestanden terugzetten. Zoals je wellicht weet, stuurt WordPress regelmatig updates voor hun systeem. Veel van die updates worden automatisch uitgevoerd, maar bij oudere versies moet je soms nog op een knop klikken.

Daarnaast gebruiken WordPress en andere CMS’en verschillende bewegende onderdelen, zoals plugins, thema’s en uitbreidingen. Die krijgen natuurlijk ook regelmatig updates, dus het kan ook nodig zijn dat je die terugzet.

Voor alle andere systemen dan WordPress kan je zoeken op “[platform naam] + how to downgrade”.

Wanneer je WordPress gebruikt, kan je eenvoudig je WordPress website downgraden, waarmee je dus teruggaat naar een vorige versie:

Downgraden naar een vorige WordPress versie.
Downgraden naar een vorige WordPress versie.

Deze gids laat zien hoe je een WordPress website kan downgraden, wat meestal slechts enkele minuten duurt:

Verwijderen en opnieuw installeren van plugins, thema’s en uitbreidingen

WordPress plugins en thema’s voegen extra code toe aan je website, in samenwerking met de WordPress kernbestanden. Goede plugins veroorzaken zelden problemen, maar af en toe kan er een conflict ontstaan. Een plugin, thema of uitbreiding kan de oorzaak van de 406 fout zijn.

De beste methode voor het identificeren van een problematische plugin of thema is het deactiveren van al je plugins en thema’s. Nadat je een plugin uitschakelt, controleer je of de 406 fout nu opgelost is. Zo ja, dan heb je de oorzaak gevonden. Gaat het niet weg, dan kan je de plugin of het thema weer installeren en de volgende proberen.

Ga naar het tabblad Plugins in WordPress en Deactivate elke plugin één voor één.
Ga naar het tabblad Plugins in WordPress en Deactivate elke plugin één voor één.

Analyseer je database op veranderingen en conflicten

Helaas kan ook een verwijderde problematische plugin nog altijd je database beïnvloeden, doordat plugins volledig toegang tot je database krijgen. Daarom moet je ook de status van je database controleren, zelfs als het erop lijkt dat het verwijderen van een plugin de 406 fout heeft opgelost. Anders loop je nog altijd het risico op dezelfde problemen in de toekomst.

Als een plugin of thema het originele probleem niet had veroorzaakt, kan je ook de database controleren of de fout hier vandaan komt. Soms kan een wijziging in de database, hetzij per ongeluk hetzij expres, de primaire oorzaak van een 406 fout zijn.

Om je database te scannen en te repareren, kan je deze oplossingen gebruiken:

  1. Installeer een database-scanner en cleaner die alle onnodige en problematische tabellen en bestanden verwijdert. Goede opties zijn bijvoorbeeld WP Optimize en de Advanced Database Cleaner. Hierbij worden meestal verouderde of ongebruikte items verwijderd, zoals verwijderde artikelen, revisies en metadata. Het is een goede eerste stap om je database flink op te schonen, waarmee je mogelijk de 406 error al oplost.
  2. Scan de database en zoek naar gegevens en tabellen die mogelijk gewijzigd zijn door een problematische plugin, of die er op een andere manier problematisch uitzien.
  3. Als je geen idee hebt wat er mis is met je database, kan je op de specifieke problemen zoeken om advies op forums te vinden. Er is een grote kans dat iemand anders al precies hetzelfde probleem is tegen gekomen.
Schoon je database op met een optimalisatietool zoals WP-Optimize
Schoon je database op met een optimalisatietool zoals WP-Optimize. Afbeelding: WP-Optimize

Analyseren van de logs van je server

De vorige aanbevelingen richten zich vooral op de client-side of het CMS. Nu gaan we door naar problemen met de server-side. Deze tips, en ook alle volgende tips, zijn vooral handig als je geen CMS gebruikt, of zeker weet dat de 406 fout niet aan je CMS of de bezoeker ligt.

De eerste stap om de problemen op de server op te lossen is het controleren van de logs. Het maakt niet uit welke webtoepassing, CMS of webdesign je ook gebruikt, ze hebben allemaal logs op de server.

De logs van de toepassing slaan de complete of recente geschiedenis op, inclusief informatie over elk verzoek aan de database en de getoonde resultaten of pagina’s, en nog allerlei andere zaken. De logs van de server bevatten informatie over de status van de server en de gebruikte hardware om de webtoepassing uit te voeren.

Kinsta gebruikers kunnen foutlogs en serverlogs vinden in het MyKinsta dashboard. Bekijk alle logs die de 406 fout op kunnen leveren:

  • Het error.log bestand
  • Het kinsta-cache-perf.log bestand
  • Het access.log bestand
Om de drie belangrijke logbestanden te bekijken, klik je op het tabblad Sites, kies je de website en klik je op de knop Logs, en vervolgens kies je de gewenste logbestanden in het dropdownmenu.
Om de drie belangrijke logbestanden te bekijken, klik je op het tabblad Sites, kies je de website en klik je op de knop Logs, en vervolgens kies je de gewenste logbestanden in het dropdownmenu.

Je kan ook de originele toegangslog en WordPress foutlogbestanden bekijken via een FTP client. Andere opties zijn het inschakelen van foutlogs in wp-config.php en de debugmodus in het MyKinsta dashboard gebruiken.

Als je problemen hebt om de foutlogs te vinden of moeite hebt om de betekenis ervan te lezen, vraag dan hulp bij het ondersteuningsteam van Kinsta.

Debuggen van de webtoepassing (zoals WordPress)

De meeste webtoepassingen hebben serverlogs en foutlogs, en bieden meestal ook informatie over het debuggen van de toepassing zelf. Debuggen gaat over het doornemen van de code van een toepassing om kleinere fouten (ook wel bugs genoemd) te vinden en op te lossen.

Eén van de beste manieren om een complete scan van WordPress te doen (en elke willekeurige andere webtoepassing) is het debuggen van de database en websitebestanden. Gelukkig betekent debuggen niet dat je zelf elke individuele regel code hoeft te lezen en te hopen dat je de bugs er zelf uitpikt. Er zijn allerlei programma’s beschikbaar voor dit doel, en Kinsta heeft zelfs een eigen debugging tool ingebouwd in het MyKinsta dashboard.

Je kan het debuggen beginnen door de basis van WordPress debuggen te leren met de Kinsta Debug Mode, WordPress Debug-plugins, of een meer handmatige aanpak:

Sites > Tools brengt je naar een pagina waar je de WordPress Debugging Mode kan activeren in het Kinsta dashboard.
Sites > Tools brengt je naar een pagina waar je de WordPress Debugging Mode kan activeren in het Kinsta dashboard.

De 406 fout in de toekomst voorkomen

Het probleem met de 406 fout is dat het in allerlei verschillende situaties kan ontstaan. Zo zou je de “406 Not Acceptable” http-fout kunnen zien wanneer je als normale consument rustig op Hulu of Netflix zit te browsen.

Dat is irritant, maar meestal eenvoudig op te lossen. Een groter probleem is wanneer je de 406 error tegenkomt op je eigen website of toepassing. In die gevallen zal je de server en CMS websitebestanden moeten controleren.

Als het je eigen website is, wil je deze fout natuurlijk voorkomen in de toekomst. Plugins, thema’s en menselijke fouten kunnen er altijd in sluipen, maar we hebben wel enkele aanbevelingen om je databases en websitebestanden zo schoon mogelijk te houden:

  • Installeer alleen plugins, thema’s en uitbreidingen die je echt nodig hebt en volledig kan vertrouwen. Beperk al deze elementen tot een absoluut minimum.
  • Pas nooit de WordPress core aan tenzij echt nodig en je helemaal perfect weet wat je doet.
  • Voer regelmatig een database cleaner en site optimizer We raden je aan dit minstens elke maand te doen, en idealiter zoek je een cleaner plugin die dit automatisch op de achtergrond voor je regelt.
  • Maak een gewoonte van het debuggen van je server en webtoepassing. Zoals gezegd biedt Kinsta een Debugging feature in het eigen dashboard. Ook veel andere toepassingen hebben een vergelijkbare functie.
  • Stel geautomatiseerde backups van je website of toepassing in. Op die manier zal een conflict of fout in de code niet teveel stress opleveren, omdat je eenvoudig terug kan gaan naar een vorige, probleemvrije versie van de website.
  • Voer een handmatige backup uit van je website voordat je WordPress of plugins updatet, zelfs als je ook al geautomatiseerde backups maakt (beter te veel dan te weinig backups). Het is ook verstandig om backups uit te voeren voordat je bestanden aanpast of nieuwe code aan je website toevoegt.

Samenvatting

Je kan de 406 fout op verschillende manieren oplossen. Als je weet wat je ziet en weet waar je de oplossing kan vinden, is de fout goed te repareren.

Alhoewel dit niet één van de meest voorkomende WordPress fouten is, zul je de fout wel af en toe tegenkomen als er iets mis is met je configuratie.

Nog andere aanbevelingen voor het oplossen van “406 Not Acceptable” fouten? Deel ze in de reacties hieronder!

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.