Provare ad accedere ad un sito e trovarsi di fronte ad una pagina di errore è nel migliore dei casi sconveniente, sia se il sito vostro, sia se il sito è di qualcun altro. Come succede per molti codici di risposta HTTP, una delle cose che rendono irritante un errore 401 è la mancanza di informazioni fornite per la diagnosi e la risoluzione del problema.

L’errore 401 può verificarsi con qualsiasi browser, quindi è un problema che le persone si trovano a dover affrontare piuttosto spesso. Nella maggior parte dei casi, questo problema si risolve in modo relativamente semplice e diretto.

In questo articolo spiegheremo cosa sono i messaggi di errore 401 e perché si verificano. Vi illustreremo anche cinque metodi da seguire per correggerli.

Cominciamo!

Che Cos’è il Codice di Errore 401?

L’Internet Engineering Task Force (IETF) definisce l’errore 401 Unauthorized come:

Il codice di stato 401 (Unauthorized) indica che la richiesta non è stata applicata perché manca di credenziali di autenticazione valide per la risorsa di destinazione. Il server che genera una risposta 401 DEVE inviare un campo di intestazione WWW-Authenticate contenente almeno una sfida applicabile alla risorsa di destinazione.

Introduzione al Codice di Errore 401

I codici di stato HTTP 400 si incontrano quando c’è un problema nel fare una richiesta. Un errore 401, in particolare, si verifica quando il browser nega l’accesso alla pagina che state cercando di visualizzare.

Di conseguenza, invece di caricare la pagina web, il browser caricherà un messaggio di errore. Gli errori 401 possono verificarsi con qualsiasi browser, per cui il messaggio che appare può essere diverso.

Ad esempio, in Chrome o Edge, probabilmente vedrete un’icona di un foglio di carta con un semplice messaggio che vi dirà che la pagina in questione non funziona. Sarà inclusa in basso la frase “HTTP Error 401”, e vi sarà suggerito di contattare il proprietario del sito se il problema persiste:

L'errore 401 in Chrome
L’errore 401 in Chrome

In altre situazioni e in altri browser, potreste ricevere un avviso un po’ meno amichevole che consiste solo di una pagina vuota con un messaggio “401 Authorization Required”:

Il messaggio di errore 401 Authorization Required in Nginx
Il messaggio di errore 401 Authorization Required in Nginx

Altre varianti includono:

  • “HTTP 401 Error – Unauthorized”.
  • “401 Unauthorized”
  • “Access Denied”

Questi errori si verificano su siti web che richiedono un’autenticazione. Nella maggior parte dei casi, significa che c’è qualcosa che non va nelle credenziali o nella capacità del browser di leggerle come valide.

Questo è simile all’errore HTTP 403 Forbidden, in quanto l’accesso non è consentito all’utente. Tuttavia, a differenza dell’errore 403, il messaggio di errore 401 indica che la procedura di autenticazione è fallita.

Il codice viene inviato tramite l’intestazione WWW-Authenticate, che ha il compito di identificare il metodo di autenticazione utilizzato per concedere l’accesso a una pagina web o a una risorsa.

Codice di errore HTTP 401 Unauthorized Error
Tipo di errore Comunemente un errore lato client
Variazioni dell’errore 401 Authorization Required
401 Unauthorized
HTTP 401 Error – Unauthorized
Access Denied
Cause dell’errore Cache e cookie del browser non aggiornati
Incompatibilità del plugin
URL errato o link obsoleto

Quali Sono le Cause di un Errore 401?

Se vi imbattete in un codice di errore 400, sapete di avere a che fare con un problema lato client (o del browser). Anche se il problema può verificarsi all’interno del vostro browser, però, non sempre significa necessariamente che il colpevole sia il browser, cosa che spiegheremo dettagliatamente più avanti.

Gli errori 401 si verificano su risorse riservate, come le pagine protette da password del vostro sito WordPress. Quindi è lecito supporre che la causa del problema abbia qualcosa a che fare con le credenziali di autenticazione.

Cache e Cookie del Browser Obsoleti

Molto spesso un un errore 401 si verifica perché la cache del browser e i cookie non sono aggiornati, e questo impedisce il corretto riconoscimento dell’autorizzazione. Se il vostro browser non utilizza le credenziali di autenticazione valide (o non ne utilizza affatto), il server rifiuterà la richiesta.

Incompatibilità dei Plugin

In altre situazioni, questo errore può essere causato da un’incompatibilità o da un errore del plugin. Ad esempio, un firewall o un plugin di sicurezza può scambiare il tentativo di login per un’attività malevola e restituisce un errore 401 per proteggere la pagina.

URL Errato o Link Scaduto

È possibile anche che il problema sia da attribuire ad un piccolo errore. Tra le cause più comuni in questa categoria vi è un URL scritto in modo errato o un link non aggiornato.

Come Risolvere l’Errore 401?

Ora che abbiamo fatto un po’ di chiarezza sull’errore 401, è il momento di scoprire come risolverlo.

Diamo un’occhiata a questi cinque metodi:

1. Cercare Errori nell’URL

Inizieremo con la soluzione più semplice: assicurarci di aver utilizzato l’URL corretto. Può sembrare una cosa semplice, ma a volte, se l’URL non è stato inserito correttamente, possono apparire errori 401.

Un’altra possibilità è che il link utilizzato per visitare la pagina in questione punti all’URL sbagliato. Ad esempio, potrebbe essere obsoleto, o portare a una pagina che non esiste più (e non ci sono redirect).

Pertanto, vale la pena ricontrollare l’URL utilizzato. Se l’avete digitato voi stessi, verificate di aver scritto tutto correttamente. Se avete cliccato su un link, verificate che punti alla pagina a cui stai cercando di accedere (o provate a visitare quella pagina direttamente attraverso il sito web).

2. Cancellare la Cache del Browser

La cache del vostro browser è stata progettata per migliorare la vostra esperienza online, riducendo i tempi di caricamento delle pagine. A volte, purtroppo, può anche causare interruzioni indesiderate.

Come abbiamo accennato in precedenza, una delle cause frequenti dell’errore 401 è data da dati in cache o cookie non aggiornati o non corretti. Pertanto, se non trovate problemi nell’URL della pagina, il passo successivo è quello di cancellare la cache del browser.

Questo eliminerà qualsiasi informazione non valida memorizzata localmente nel vostro browser, che potrebbe interrompere la procedura di autenticazione. Allo stesso modo, i cookie del vostro browser potrebbero contenere dati di autenticazione che bisogna semplicemente aggiornare.

Se siete utenti di Google Chrome, potete farlo cliccando sull’icona del menu nell’angolo in alto a destra del browser e poi andando su Impostazioni. Nella sezione Privacy e sicurezza, fate clic su Cancella dati di navigazione:

La sezione Cancella dati di navigazione in Google Chrome
La sezione Cancella dati di navigazione in Google Chrome

Si aprirà una nuova finestra. Nella scheda Base, assicuratevi che siano selezionate tutte e tre le caselle, quindi selezionate Cancella dati:

La sezione Cancella dati di navigazione in Chrome
La sezione Cancella dati di navigazione in Chrome

Questa procedura sarà un po’ diversa negli altri browser. Ad esempio, in Mozilla Firefox, dovrete fare clic sull’icona della libreria nell’angolo in alto a destra del browser, poi andare su History > Clear Recent History:

L'opzione 'Clear Recent History' nelle impostazioni di Firefox
L’opzione ‘Clear Recent History’ nelle impostazioni di Firefox

Nel pannello che si aprirà di seguito, selezionate Everything nel menu a tendina in alto, assicuratevi che sia selezionato “Cache” e poi cliccate sul pulsante “Clear Now“:

Il pannello
Il pannello “Clear History” in Firefox

Se utilizzate un browser diverso, fate riferimento a questa guida per lo svuotamento della cache

3. Svuotare il DNS

Un altro metodo da provare per risolvere l’errore 401 è lo svuotamento del vostro Domain Name Server (DNS). Anche se questo è un problema più raro, può essere una delle cause possibili, quindi vale la pena provare nel caso in cui le prime due soluzioni non funzionino.

Per farlo in Windows, cliccate sul pulsante Start e digitate cmd nella barra di ricerca. Premete Invio e si aprirà il prompt dei comandi. Copiate e incollate il comando ipconfig/flushdns, quindi premete nuovamente Invio:

L'interfaccia del prompt dei comandi in Windows
L’interfaccia del prompt dei comandi in Windows

Su Mac, è possibile farlo andando in Finder > Applicazioni > Utilità > Terminale:

L'applicazione terminale su Mac
L’applicazione terminale su Mac

Inserite la riga di comando sudo killall -HUP mDNSResponder e premete Invio. Poi, potete provare ad aggiornare la pagina che stavate cercando di visitare, per vedere se l’errore 401 è risolto.

4. Disattivare i Plugin di WordPress

Il problema che causa l’errore 401 potrebbe non essere dovuto al vostro browser. Se avete problemi ad accedere al vostro sito WordPress, è possibile anche che la colpa sia di uno o più plugin.

Alcuni plugin, soprattutto quelli focalizzati sulla sicurezza, sono configurati in modo da mostrare un errore 401 quando sospettano un’attività di login sospetta che potrebbe far pensare ad un attacco. Altri potrebbero semplicemente avere problemi di compatibilità. Pertanto, è una buona idea disattivare tutti i plugin di WordPress e vedere se questo risolve il problema.

Potete disattivare tutti i vostri plugin contemporaneamente nel vostro cruscotto, andando su Plugin > Plugin installati. Spuntate la casella in alto per selezionarli tutti. Poi, nel menu a tendina Azioni di gruppo, selezionate Disattiva e cliccate sul pulsante Applica:

Disattivare i plugin nel cruscotto di WordPress
Disattivare i plugin nel cruscotto di WordPress

Dopo di che, provate a ricaricare la pagina che ha restituito l’errore 401 per vedere se questo ha eliminato il problema. Se è così, potete attivare manualmente ogni plugin uno alla volta, per determinare quale sia la causa dell’errore.

Poi potete rimuovere il plugin, sostituirlo con uno nuovo o contattare il suo sviluppatore per avere assistenza.

5. Controllare la Risposta dell’Header WWW-Authenticate

A questo punto, se il problema non è stato risolto, può esserci un problema lato server. Questo significa che la nostra ultima soluzione richiederà un po’ di attenzione in più.

Come abbiamo visto prima, la risposta 401 viene inviata attraverso l’header WWW-Authenticate, che appare come “WWW-Authenticate: < type> realm=< realm>”. Questa include ‘challenges’, o stringhe di dati che indicano quale tipo di autenticazione è necessaria per ottenere l’accesso.

In poche parole, dovrete controllare se la risposta dell’intestazione è stata inviata e, più specificamente, quale schema di autenticazione è stato utilizzato. Come minimo, questo può aiutarvi a restringere il campo di ricerca della causa del problema e ad avvicinarvi ad una soluzione.

Andare alla pagina web che mostra l’errore 401 e accedete alla console di sviluppo di Chrome. Potete fare clic con il tasto destro del mouse sulla pagina e selezionare Ispeziona, oppure utilizzare Ctrl+Shift+J.

Di seguito, fate clic sulla scheda Network e ricaricate la pagina. Questo genererà un elenco di risorse. Selezionate l’header Status per ordinare la tabella e individuare il codice di stato 401:

Il codice di stato 401 nella console di sviluppo di Chrome
Il codice di stato 401 nella console di sviluppo di Chrome

Selezionare questa voce, quindi fate clic sulla scheda Headers. In Response Headers (Intestazioni di risposta), individuate l’header WWW-Authenticate:

La sezione Response Headers della console di sviluppo
La sezione Response Headers della console di sviluppo

Le informazioni presenti nell’header della risposta, in particolare gli schemi di autenticazione, possono fornire maggiori informazioni su ciò che sta accadendo e indirizzarvi verso una soluzione. Possono aiutarvi a capire quale tipo di autenticazione si aspetta il server.

Nell’esempio precedente, possiamo vedere che lo schema di autenticazione è “Basic”. Ciò significa che la richiesta di autenticazione dovrebbe richiedere solo un ID e una password. Per informazioni più dettagliate e istruzioni su come utilizzare queste informazioni, consigliamo di fare riferimento all’HTTP Authentication Scheme Registry.

Riepilogo

Quando il browser e il server hanno problemi di comunicazione o di autenticazione delle richieste, a volte si è costretti ad affrontare errori come l’errore 401. Anche se questo problema è irritante, il messaggio è di solito temporaneo e risolvibile.

Ecco cinque metodi per correggere l’errore 401:

  1. Cercare gli errori nell’URL.
  2. Svuotare la cache del browser.
  3. Ripulire il DNS.
  4. Disattivare i plugin di WordPress.
  5. Controllare la risposta dell’header WWW-Authenticate.