Gli errori lato server e client accadono occasionalmente, e di solito ci si riferisce a essi come risposte HTTP o codici di stato. L’errore “Error 406” o “406 Not Acceptable” è una di queste risposte HTTP.

Potete assistere all’errore 406 mentre visitate un sito web o, peggio, sul vostro. Può essere irritante per l’utente medio di internet, ma al limite del terrificante per chi possiede il sito web o l’applicazione dove si sta generando l’errore. Oltre a sembrare poco professionale e confuso, qualsiasi codice di risposta HTTP, compreso l’errore 406, può far perdere vendite e utenti.

Questo articolo spiega cos’è l’errore “406 Not Acceptable”, quali sono le cause, come risolverlo e i passaggi per evitarlo in futuro.

Consulta la nostra guida per risolvere un errore 406 e individuare la fonte del problema

Cos’È l’Errore 406?

La buona notizia è che il messaggio di errore HTTP “406 Not Acceptable” non è così comune come l’errore del server 404 (che di solito indica una pagina web inesistente), o anche gli errori HTTP 301 o 500. Per questo motivo non dovreste vedere questo messaggio così spesso.

Anche se raro, è possibile che l’errore 406 diventi un problema per il vostro sito web. Di solito si presenta così:

Un esempio di messaggio "406 Not Acceptable"
Un esempio di messaggio “406 Not Acceptable”.

In italiano, l’errore 406 suonerebbe così:

Non accettabile

Non è stato possibile trovare una rappresentazione appropriata della risorsa richiesta su questo server.

A volte il messaggio identifica la “risorsa richiesta” in cui si trova il problema, con altri messaggi o informazioni sul server menzionati alla fine del messaggio:

Alcuni errori 406 mostrano la risorsa rifiutata
Alcuni errori 406 mostrano la risorsa rifiutata.

L’aspetto e il testo del messaggio di errore 406 dipendono dal sito web, dall’host e dal browser utilizzato per accedere al sito. L’errore 406 può rivelare da dove provengono gli errori. Altre volte potreste scoprire che si tratta di un semplice errore “406 Not Acceptable” senza alcuna informazione che vi aiuti a risolvere il problema.

Ora, facciamo finta che i browser parlino in inglese semplice e non con questi messaggi criptici. In questo caso, il browser direbbe qualcosa del genere:

Ciao, sono il tuo browser. Ho provato a mostrare questa pagina web, ma si è verificato uno dei due problemi:

  1. Il server del sito mi ha inviato il formato di file sbagliato, quindi non posso accettarlo.
  2. Il server del sito web viola alcune impostazioni o requisiti di sicurezza.

Quindi, per favore, risolvi la violazione o fai usare al server uno dei formati di file che accetto. Nel caso te lo stia chiedendo, ecco i formati di file che so leggere.

Se solo i browser fossero sempre così amichevoli!

Essenzialmente, c’è una cattiva comunicazione tra il server e il browser o la macchina usata per presentare l’applicazione web. Il browser non può leggere ciò che arriva o verificare i dati perché non soddisfano alcuni requisiti.

Ora dobbiamo rispondere ad alcune domande per capire la causa di questo errore di comunicazione.

Cosa Causa l’Errore 406?

Ogni volta che aprite una pagina web, il vostro browser (come Safari, Firefox, Brave, Chrome o Internet Explorer) invia una richiesta al server della pagina per ottenere il contenuto del sito e i file del database. Il browser funge da messaggero tra voi e il server: dice al server cosa l’utente vuole vedere, e si spera che le informazioni corrette tornino indietro.

Durante quella prima richiesta, il browser comunica al server tutti i formati di file che può accettare. Si chiama intestazione di richiesta (request header) Accept-, che spinge il server a consegnare i file nei formati appropriati per produrre l’intero sito o applicazione web, a partire dall’header.

A volte il server invia una risposta che non è nel formato adatto o viola una regola stabilita dal browser o dalla macchina client. In questa situazione appare un errore 406 nella finestra del browser, indicando che il server non sta consegnando i dati appropriati.

Ecco alcuni esempi di “cattivi formati” e “violazioni di regole” che possono venire fuori con l’intestazione della richiesta:

  • Accept-ranges: Alcuni server hanno misure di sicurezza preimpostate o permettono solo uno specifico intervallo di dimensioni di file nella risposta. Se la risposta tenta di inviare troppi byte al di fuori dell’intervallo consentito, vedrete l’errore 406.
  • Accept-encoding: Questa è un’area dell’intestazione destinata a comprimere i file, in modo che si muovano rapidamente dal server al browser. Alcuni metodi di compressione e formati non sono accettati e producono un codice di errore 406.
  • Accept-charset: Si riferisce a un set di caratteri o a come le tabelle dei file del sito prendono il codice (come CSS e HTML) e lo trasformano in caratteri comprensibili. Ci sono così tanti caratteri, lingue e simboli nel mondo che è difficile coprirli tutti. La tabella standard è chiamata ISO-8859, ma ci sono anche altre tabelle complementari. Di tanto in tanto vengono rilasciate nuove tabelle di caratteri per tenere il passo con le aggiunte di lingue e caratteri.
  • Accept-language: Questo è di solito un nome diverso per Accept-charset che fa riferimento al focus sulle lingue internazionali.
  • MIME type violation: A volte, il browser richiede uno specifico tipo MIME al server. I tipi MIME sono elementi di contenuto come immagini JPEG, formati video specifici o semplice testo. Se il server non può fornire un tipo MIME richiesto, come le immagini JPEG, vedrete un errore 406.

Il modo principale per affrontare e risolvere un errore 406 è controllare il codice sorgente per problemi negli header Accept-, Request- e Response-.

Il modo più semplice per esaminare gli header Accept- e Response- è quello di aprire una pagina web nel vostro browser, fare clic con il tasto destro e selezionare Inspect.

Andate su Network > Headers per rivelare tutte le richieste inviate da questa pagina web.

Cliccate con il tasto destro e scegliete Inspect nel browser, poi andate alle schede Network e Headers
Cliccate con il tasto destro e scegliete Inspect nel browser, poi andate alle schede Network e Headers.

In genere si può selezionare qualsiasi richiesta dalla lista lunga per vedere gli header Request- e Response- per quella particolare richiesta.

Cliccate su qualsiasi richiesta nella lista per vedere gli header Response e Request
Cliccate su qualsiasi richiesta nella lista per vedere gli header Response e Request.

Oppure, potete contattare la persona che ha sviluppato il vostro sito perché dia un’occhiata al codice sorgente. Tuttavia, controllare il codice sorgente è molto più facile quando si dispone di strumenti per il debug e la pulizia del database, di cui parleremo più avanti in questo articolo.

Come detto prima, un errore “406 Not Acceptable” ci dice che il client ha inviato una richiesta valida al server, ma la richiesta includeva un requisito speciale che il server doveva seguire. Questo requisito speciale nella richiesta iniziale era sotto forma di un header HTTP Accept-.

Questo ci lascia con alcune cause potenziali:

  1. Il server non ha fornito il tipo MIME richiesto o i formati appropriati, come un JPEG o un video mp4.
  2. Il server non ha risposto con la lingua corretta (Accept-language). Per esempio, potrebbe aver inviato una risposta in tedesco quando il browser ha chiesto il francese.
  3. Il server ha usato il metodo o il formato di compressione sbagliato in risposta alla richiesta Accept-encoding.
  4. Il server ha rimandato indietro troppi byte che non erano in linea con la richiesta Accept-ranges.
  5. Il server non è riuscito a fornire caratteri comprensibili, il che risulterebbe in un problema con la richiesta Accept-charset del browser.

Ci sono altre ragioni per cui si può vedere l’errore 406, ma non sono molto comuni. L’elenco di cui sopra va dalle ragioni più comuni a quelle meno comuni. I primi due entrano in gioco molto più spesso degli altri, quindi c’è una buona probabilità che dobbiate concentrarvi sulla risoluzione di un potenziale problema di violazione del tipo MIME o di un problema di Accept-language.

In generale, i proprietari di siti web dovrebbero conoscere questi problemi e violazioni di formato, vedendo come qualcosa all’interno dei file del vostro sito può causare problemi. Queste situazioni si verificano spesso a causa di errori umani, come digitare accidentalmente il codice sbagliato, cancellare il codice necessario, o configurare male il server. L’errore 406 appare anche quando specifiche impostazioni di sicurezza o regole bloccano la trasmissione di contenuti dal server.

Come Risolvere l’Errore 406

Prima di completare qualsiasi passo per risolvere un errore 406 è prudente eseguire un backup del sito web o dell’applicazione. C’è sempre la possibilità di causare ulteriori problemi quando entrate nel codice sorgente del vostro sito, quindi meglio avere un backup del database e dei file del sito da ripristinare se necessario.

Assicuratevi di realizzare un backup completo con tutto, dal database all’applicazione, dagli elementi multimediali ai file del sito. Se siete utenti Kinsta, potete farlo con la funzione di backup MyKinsta, che registra l’intero sito web in un file separato e ha un pulsante Restore che si può usare in un momento successivo:

Eseguite backup giornalieri, orari o manuali nel cruscotto di MyKinsta
Eseguite backup giornalieri, orari o manuali nel cruscotto di MyKinsta.

Ora che abbiamo una comprensione più profonda del perché si verifica l’errore 406, è il momento di parlare dei migliori metodi per risolvere l’errore e prevenire che si ripeta.

Queste tattiche includono cause lato client (dove un utente commette un errore o la macchina non funziona correttamente), cause lato server, e cause dovute alla piattaforma come plugin difettosi.

Assicurarsi Che l’URL Sia Corretto

Il nostro primo consiglio può sembrare semplice, ma è l’opzione più veloce per la risoluzione dei problemi, e si concentra sui problemi con il lato client (cioè, il vostro computer).

In questa situazione è più probabile che si verifichi un errore 404 rispetto a un errore 406, ma potreste finire per vedere un errore “406 Not Acceptable” se l’URL del sito è valido. Eppure, c’è qualcosa di strano nel modo in cui il browser traduce la richiesta. Per esempio, l’aggiunta di “JSON” o “PHP” alla fine degli URL potrebbe essere mal interpretata come una richiesta di quei particolari formati, anche se il client non ne ha bisogno.

Per risolvere il problema, ricontrollate l’URL usato in precedenza e che ha prodotto l’errore. Provate a digitarlo di nuovo o optate per un diverso sottodominio del sito web per vedere se si tratta solo di una pagina che non viene visualizzata.

Un messaggio 406 è tecnicamente considerato un codice di errore lato client (anche se spesso è un problema di piattaforma o di server), quindi questa è la prima linea d’azione per determinare se c’è qualcosa di sbagliato lato client.

Ripristinare i Dispositivi e le Reti

A volte, un altro problema lato client coinvolge quegli stessi header Accept- inviati dal computer dell’utente a una piattaforma che non può soddisfare la richiesta. Molte di queste piattaforme includono sistemi orientati ai videogiochi o ai media come Hulu o marketplace musicali come Spotify.

In termini più semplici, potreste accedere a una piattaforma come Hulu, provare a guardare il vostro programma TV preferito e ricevere un messaggio di errore 406. In questo esempio, il problema è quasi sempre sul lato client. Di solito è dovuto al vostro computer, alla rete o a un altro dispositivo che avete usato per lanciare la piattaforma.

Anche se può accadere con qualsiasi piattaforma, alcune piattaforme che comunemente riportano errori 406 includono:

  • Hulu
  • Google Play
  • Square Enix Games
  • Netflix
  • Xbox
  • Windows (di solito per i giochi)

Questa lista è lungi dall’essere completa, ma vi dà un’idea di dove può verificarsi l’errore 406.

Le piattaforme multimediali e per i videogiochi sono complicate e con molte restrizioni che dipendono dalla vostra posizione o dalla configurazione della rete. C’è la possibilità che possiate incontrare un errore come questo a causa di tutti i vari pezzi in movimento.

Anche se non possiamo aiutarvi a risolvere i problemi di ogni specifica piattaforma, seguite le seguenti raccomandazioni e verificate se l’errore si risolve:

  • Andate online per controllare lo stato del server della vostra piattaforma. Potrebbe essere semplicemente un problema con il server dell’azienda.
  • Riavviate il computer, il sistema di gioco, il dispositivo di streaming o altre macchine.
  • Scollegate tutti i dispositivi dai loro cavi, aspettate qualche minuto prima di ricollegarli tutti, e controllate se l’errore è sparito.
  • Verificate se l’applicazione sta eseguendo la versione più recente. Inoltre, controllate se una delle vostre macchine ha aggiornamenti del firmware disponibili.
  • Ripristinate la vostra rete di casa o dell’ufficio (la connessione WiFi o internet attraverso il vostro router).
  • Considerate di passare da una rete wireless a una connessione di rete cablata se avete ancora problemi.
  • Anche se questo non è sempre possibile, considerate la possibilità di replicare l’errore con una macchina completamente diversa. Assicuratevi che il dispositivo sia sulla stessa rete. Se non riuscite a replicare l’errore, controllate la vostra rete e la macchina originale.

Se tutto il resto fallisce, andate sul vostro motore di ricerca e digitate il nome della vostra piattaforma insieme a “+ 406 error code” per avere consigli specifici per la risoluzione dei problemi. Questo spesso vi permette di scoprire forum e documentazione di supporto che vi guidano attraverso il processo.

Rollback delle Recenti Modifiche al CMS

Poi è il momento di esplorare il sistema utilizzato per i vostri siti web o applicazioni.. Potreste scoprire che il vostro sistema di gestione dei contenuti, come WordPress, è la causa diretta di un errore “406 Not Acceptable” per via di una complicazione con qualcosa all’interno dei file del vostro sito.

Se usate WordPress o qualsiasi altro sistema di gestione dei contenuti, controllate quando è avvenuto l’ultimo aggiornamento. WordPress ha una robusta infrastruttura predefinita per evitare questo tipo di errori, non importa quale.

Tuttavia, plugin specifici, temi o un codice regolato manualmente potrebbero produrre situazioni in cui i file del sito violano le richieste del client o del server. Un semplice aggiornamento all’ultima versione del vostro CMS può risolvere subito il problema.

Per capire se il problema si deve al vostro CMS, iniziate con il rollback di qualsiasi aggiornamento recente che si è verificato ai file di base. Come forse già sapete, WordPress invia regolarmente aggiornamenti al suo sistema. La maggior parte di questi aggiornamenti avviene automaticamente, ma le versioni più vecchie richiedono ancora di fare clic su un pulsante.

Inoltre, WordPress e altri CMS usano diverse parti mobili come plugin, temi ed estensioni. Anche questi vengono aggiornati regolarmente, quindi potrebbe essere necessario eseguire il rollback di alcuni di essi.

Per tutti i sistemi al di fuori di WordPress, cercate “nome della piattaforma + come fare il downgrade”.

Se usate WordPress, potete facilmente fare il downgrade del vostro sito WordPress tornando effettivamente a una delle versioni precedenti:

Effettuare il downgrade a una versione precedente di WordPress
Effettuare il downgrade a una versione precedente di WordPress.

Questa guida delinea i seguenti metodi per il downgrade del vostro sito WordPress, la maggior parte dei quali richiede solo pochi minuti:

Disinstallare e Reinstallare Plugin, Temi ed Estensioni

I plugin e i temi di WordPress aggiungono codice extra ai file del vostro sito che interagiscono con i file principali di WordPress. I plugin affidabili in genere non causano problemi, ma occasionalmente si verifica un conflitto. Un plugin, un tema o un’estensione di terze parti può essere la ragione dell’errore 406.

Il metodo collaudato per identificare un plugin o un tema problematico è quello di disattivare i vostri plugin e temi uno per uno. Dopo averli disattivati, controllate se l’errore 406 è scomparso. Se è così, avete trovato il problema. Se non sparisce, reinstallate il plugin o il tema e disinstallate il successivo.

Andate alla scheda Plugins in WordPress e disattivate ogni plugin uno per uno
Andate alla scheda Plugins in WordPress e disattivate ogni plugin uno per uno.

Analizzare lo Stato del Database e Cercare Cambiamenti e Conflitti

Sfortunatamente, un plugin “problematico” rimosso potrebbe ancora influenzare il vostro database WordPress poiché i plugin hanno pieno accesso al database per funzionare bene. Pertanto, dovreste comunque controllare lo stato del vostro database anche se sembra che la rimozione di un plugin abbia fatto sparire l’errore 406. In caso contrario, correte il rischio di vedere nuovi problemi in futuro.

Se un plugin o un tema non era il colpevole, dovreste anche verificare se il database è la fonte primaria dell’errore. A volte un cambiamento di database, accidentale o intenzionale, diventa la ragione principale per cui appare un errore 406.

Per scansionare e riparare il vostro database, considerate queste soluzioni:

  1. Installare uno strumento per analizzare e pulire il database che rimuova le tabelle e le risorse inutili e fastidiose. Alcune opzioni includono WP Optimize e Advanced Database Cleaner. Gran parte di questo processo comporta l’eliminazione di elementi vecchi o orfani come post spazzatura, revisioni e metadati. È un buon primo passo per pulire il vostro database e potenzialmente eliminare quell’errore 406.
  2. Scansionate il database e cercate i record e le tabelle potenzialmente modificati da un plugin problematico o quelli che sembrano fuori posto o non necessari.
  3. Se avete un’idea di cosa non va nel vostro database, andate su un motore di ricerca e cercate aiuto nei forum e in altre discussioni online. C’è una buona possibilità che qualcun altro abbia sperimentato lo stesso problema.
Pulite il vostro database con uno strumento di ottimizzazione come WP-Optimize. Fonte dell'immagine: WP-Optimize
Pulite il vostro database con uno strumento di ottimizzazione come WP-Optimize. Fonte dell’immagine: WP-Optimize

Analizzare i Log del Server

Le raccomandazioni precedenti si concentrano sulla risoluzione dei problemi lato client e CMS. Ora considereremo tutti i problemi lato server. Questo suggerimento e quelli che seguono sono più utili se non state usando un CMS o se sapete che l’errore 406 non ha alcuna connessione con il vostro CMS o la vostra macchina client.

Il primo passo nella risoluzione dei problemi del server è controllare i log. Non importa che tipo di applicazione web, CMS o sistema di progettazione web state usando; tutti hanno log lato server.

I log dell’applicazione memorizzano l’intera (o recente) storia dell’applicazione web, con informazioni su ogni richiesta al database, risultati forniti, pagine richieste e molto altro. D’altra parte, i log del server contengono informazioni sulla salute e lo stato del server o dell’hardware utilizzato per eseguire l’applicazione web.

Se siete utenti di Kinsta potete trovare i log degli errori e del server nel cruscotto di MyKinsta. Controllate tutti i log che possono causare l’errore 406:

  • Il file error.log
  • Il file kinsta-cache-perf.log
  • Il file access.log
Per vedere i tre log necessari, fate clic sulla scheda Sites, scegliete il vostro sito, poi il pulsante Logs, insieme al tipo di log dal menu a tendina
Per vedere i tre log necessari, fate clic sulla scheda Sites, scegliete il vostro sito, poi il pulsante Logs, insieme al tipo di log dal menu a tendina.

Potete anche controllare i file di accesso grezzi e i file di log degli errori di WordPress con un client FTP. Altre opzioni includono l’abilitazione dei log degli errori in wp-config.php e la modalità debug nel cruscotto di MyKinsta.

Se avete problemi a trovare i log degli errori o non sapete come interpretarli, contattate il team di supporto clienti di Kinsta per ricevere assistenza.

Debug dell’Applicazione Web (come WordPress)

La maggior parte delle applicazioni web hanno log del server e degli errori, e in genere forniscono anche informazioni sul debugging dell’applicazione stessa. Il debug consiste nell’esaminare il codice dell’applicazione per trovare ed eliminare errori minori (o bug).

Uno dei modi migliori per eseguire una scansione completa di WordPress (e di qualsiasi applicazione web per quella materia) è quello di eseguire il debug del database e dei file del sito web. Per fortuna, fare il debug non significa che dovete leggere ogni riga di codice e individuare i bug da soli. Sono disponibili programmi appositi per questo scopo, e come abbiamo detto prima, anche Kinsta ha il suo strumento di debug all’interno del cruscotto di MyKinsta.

Iniziate il processo di debugging imparando le basi del debugging di WordPress con il Kinsta Debug Mode, i plugin WordPress Debug, o un processo più manuale:

Siti > Strumenti vi porta a una pagina per attivare la funzione WordPress Debugging Mode nel cruscotto di Kinsta
Siti > Strumenti vi porta a una pagina per attivare la funzione WordPress Debugging Mode nel cruscotto di Kinsta.

Prevenire l’Errore 406 in Futuro

Il problema con l’errore 406 è che può comparire in molte situazioni diverse. Potreste vedere l’errore “406 Not Acceptable HTTP” mentre navigate su Hulu o Netflix.

Non è molto piacevole, ma non è nulla che non si possa risolvere. L’occorrenza più preoccupante dell’errore 406 è quando si verifica sul vostro sito web o applicazione. In questi casi, è necessario controllare il server e i file del sito per il CMS.

Se si tratta del vostro sito web, vorrete evitare che l’errore si ripeta. Plugin, temi ed errori umani possono sempre entrare in gioco, ma abbiamo alcuni suggerimenti per mantenere i vostri database e file del sito puliti per il futuro:

  • Installate solo i plugin, i temi e le estensioni necessari e affidabili. Mantenete sempre questi elementi al minimo.
  • Non modificate mai i file di base di WordPress a meno che non sia assolutamente necessario e sappiate cosa state facendo.
  • Eseguite regolarmente una pulizia del database e un’ottimizzazione del sito. Raccomandiamo di completare questo processo ogni mese e di trovare idealmente un plugin di pulizia che funzioni automaticamente in background.
  • Prendete l’abitudine di eseguire il debug del vostro server e dell’applicazione web. Come accennato, Kinsta offre una funzione di Debugging nella sua bacheca. Anche molte altre applicazioni hanno questo tipo di funzionalità.
  • Impostate dei backup automatici del vostro sito web o applicazione. In questo modo, un conflitto di codice o un errore non vi causerà molto stress poiché potrete ripristinare una versione precedente del sito web e ricominciare da lì.
  • Eseguite un backup manuale del vostro sito prima di pianificare l’aggiornamento di WordPress e di qualsiasi plugin, anche se avete già eseguito backup automatici (meglio prevenire che curare). È anche saggio eseguire i backup prima di modificare qualsiasi file o aggiungere nuovo codice al vostro sito.

Riepilogo

È possibile risolvere l’errore 406 in diversi modi. Se sapete cosa state vedendo e dove cercare la correzione, dovreste essere in grado di eliminare l’errore.

Anche se non è uno degli errori più comuni di WordPress, l’errore 406 apparirà di tanto in tanto se la vostra configurazione non è corretta.

Avete altri consigli per risolvere gli errori “406 Not Acceptable”? Condivideteli nella sezione commenti qui sotto!

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.