422 Codice di errore - Che cos'è e come correggerlo?
Questo tutorial riguarda i seguenti argomenti:
Il codice di errore 422 sta per “Unprocessable Entity.” È uno dei numerosi codice di stato HTTP 4XX che identificano un problema lato cliente, quando il browser o l’applicazione di un visitatore tenta di connettersi a un server.
Questo errore appare in casi particolari, coinvolgendo principalmente le interazioni API, quindi non è uno di quelli più comuni. Interessa principalmente gli sviluppatori web che utilizzano l’integrazione API, quindi è meno probabile che tu lo veda mentre navighi online.
Questo articolo approfondirà cos’è il codice di errore 422, cosa lo causa, come risolverlo e alcune delle migliori pratiche per evitarlo.
La causa più comune del messaggio di errore è che la richiesta è semanticamente errata. Ciò significa che la struttura della richiesta è sintatticamente corretta, ma le istruzioni contenute non hanno significato e il server non può elaborarle.
Esempio di codice di stato 422
Prendiamo ad esempio il seguente caso. Immagina di provare a creare un nuovo account su un sito web. Compili un modulo con il tuo nome utente, email ed età.
Quando premi il pulsante “Invia”, le informazioni che hai inserito vengono inviate al server del sito web. I dati sono in un formato chiamato XML, che è un modo di strutturare i dati, e il server lo utilizzerà per creare il tuo account. Ecco come potrebbero apparire i dati XML quando vengono inviati al server:
<user>
<username>john_doe</username>
<email>john.doe@esempio.com</email>
<age>venticinque</age>
</user>
Tuttavia, alcuni dei dati di input nel corpo della richiesta XML non soddisfano i criteri del server.
- Campo età: il server si aspetta che l’età sia un numero (come 25), ma ha ricevuto la parola “venticinque”. Non può elaborarlo perché non sa come convertire le parole in numeri.
- Problemi con il nome utente: il nome utente “john_doe” potrebbe essere già stato preso da qualcun altro. Il server ha regole che impediscono i nomi utente duplicati, che possono causare errori di convalida.
Poiché il server non può utilizzare l’input dell’utente per creare il suo nuovo account, e risponde quindi con un errore 422 Unprocessable Entity, che include diverse intestazioni HTTP. Queste intestazioni forniscono un contesto aggiuntivo sulla risposta e sul server. Ecco come potrebbero apparire le intestazioni nel nostro esempio:
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 245
Data: Mon, 30 Oct 2023 12:34:56 GMT
Server: Apache/2.4.41 (Ubuntu)
X-Powered-By: PHP/7.4.3
Come risolvere l’errore 422?
Prima di trovare una soluzione al problema, è importante trovarne la causa principale. Questo ti farà risparmiare tempo e fatica e ti guiderà nella giusta direzione. Per fortuna, diversi strumenti possono fornire informazioni su quale potrebbe essere il problema.
Usa HTTP Status Checker
Puoi utilizzare un HTTP status checker per confermare il tipo di problema che stai affrontando quando le tue richieste a un determinato sito web o applicazione restituiscono un errore.
I controlli di stato HTTP funzionano inviando una richiesta HTTP all’URL che hai inviato ed elencando i codici di errore delle risposte del server web.
L’utilizzo di tale strumento ti darà un’idea chiara se hai a che fare con uno stato 422 o un altro codice di risposta e ti guiderà sulla risoluzione del problema esatto.
Controlla i log del server
I log del server del tuo sito web sono un’altra fonte di informazioni sul motivo per cui il tuo sito web restituisce un codice di stato 422. Se sei il proprietario o il webmaster e il tuo sito web produce l’errore, controlla i log del server, che dovrebbero trovarsi nel pannello di controllo del tuo host.
Gli utenti di SiteGround possono trovare registri di accesso in Site Tools > Statistiche > Registro accessi. Qui, ogni visita e il corrispondente codice di stato HTTP dal rispettivo sito web vengono registrati affinché i proprietari e i webmaster possano esaminarli.
Utilizza gli strumenti di debug
Quando si cerca una soluzione per un errore 422, gli strumenti di debug possono essere un aiuto prezioso per identificare e risolvere i problemi di fondo. Consentono di esaminare da vicino l’interazione tra il client e il server, fornendo informazioni su potenziali problemi di convalida dei dati.
Esistono vari tipi di strumenti di debug adatti a diversi ambienti e flussi di lavoro, come Postman per i test API, Fiddler per catturare il traffico HTTP o strumenti di sviluppo browser per applicazioni web (come ad esempio Google Developer Console). Questi strumenti ti aiutano ad analizzare le richieste e le risposte scambiate con il server.
Prendiamo ad esempio la Google Developer Console, poiché è prontamente disponibile in ogni browser Chrome. Se riscontri un errore su una pagina particolare, clicca con il pulsante destro del mouse su di essa e seleziona Ispeziona.
Apri la scheda Rete e ricrea gli eventi e le condizioni che hanno originariamente attivato l’errore. La richiesta che produce la risposta 422 dovrebbe essere contrassegnata in rosso. Cliccaci sopra ed esamina la sua scheda Intestazioni. Qui puoi trovare informazioni dettagliate sulla risposta HTTP e sul server nella sezione Intestazioni della risposta.
Come risolvere l’errore 422?
Una volta che hai risolto i problemi e stabilito che hai a che fare con un codice di risposta 422, è tempo di rimboccarti le maniche e sistemarlo. Naturalmente, la causa del problema ne determina la soluzione. Ecco alcune delle strategie più comuni per risolvere l’errore 422.
Correggi i dati inseriti
Esamina e modifica i dati inviati nella richiesta per assicurarti che soddisfino i requisiti del server. Ciò include la correzione di eventuali errori di sintassi, garantire che i formati dei dati siano validi (ad esempio, date, email) e fornire informazioni accurate.
Ad esempio, se ricevi l’errore mentre invii un modulo di contatto, assicurati che i dati siano nel formato corretto, cioè che l’età è un numero intero, l’indirizzo email segue il formato convenzionale, ecc.
Compila tutti i campi richiesti
Assicurati che tutti i campi obbligatori dei dati della richiesta siano compilati. Controlla la documentazione dell’API o i requisiti del modulo per identificare quali campi sono necessari e assicurarti che non vengano lasciati vuoti.
Abbina correttamente il tipo di dati
Verifica che i tipi di dati di ogni campo nella richiesta corrispondano a ciò che il server si aspetta. Ad esempio, se un campo richiede un numero intero (come età o CAP), assicurati che non vengano inviati valori in lettere o booleani.
Ripara i Database Corrotti (per WordPress)
Quando si tratta di WordPress, un database danneggiato può impedire a un sito web di elaborare correttamente le richieste e portare quindi a un errore 422.
Hai diverse opzioni per riparare un database WordPress: puoi utilizzare un plugin con funzionalità di riparazione del database, riparare le tabelle direttamente da phpMyAdmin, o utilizzare la modalità integrata di riparazione del database di WordPress.
Uno dei plugin più popolari è WP-DBManager, ma viene con un avvertimento al momento di questo articolo, ovvero il plugin non è stato aggiornato per più di un anno e non è stato testato con le ultime tre versioni principali di WordPress. Pertanto, dovresti stare attento e prendere delle precauzioni, come creare un backup del tuo sito web prima di usare il plugin.
La modalità di riparazione integrata di WordPress è più affidabile, anche se richiede uno sforzo maggiore. Gli utenti di SiteGround possono seguire questi passaggi per abilitarla in Site Tools:
- Vai a Site Tools > Sito > Gestione File.
- Vai alla cartella principale del tuo sito web. Il percorso è tuosito.com/public_html.
- Seleziona il file wp-config.php e premi Modifica.
- Appena sopra la riga “/* That’s all, stop editing! Happy publishing. */”, aggiungi il seguente codice:
define('WP_ALLOW_REPAIR', true);
- Clicca su Salva per confermare la modifica.
- Apri il browser e digita il seguente indirizzo:
https://tuosito.com/wp-admin/maint/repair.php
Sostituisci tuosito.com con il dominio del tuo sito web. - Scegli tra Riparazione database e Riparazione ed ottimizzazione del database.
- Una volta terminato, torna a modificare il file wp-config.php. Rimuovi la riga che hai aggiunto in precedenza, ovvero:
define(‘WP_ALLOW_REPAIR’, true); - Salva le modifiche nel file wp-config.php dopo aver cancellato la linea.
Come prevenire l’errore 422?
Implementare le migliori pratiche nella convalida dei dati e nella manutenzione delle applicazioni garantisce che i dati inviati al server siano accurati e completi. Quindi, eviterai la maggior parte degli scenari che potrebbero causare un codice di risposta 422. Ecco alcune strategie efficaci per prevenire questo errore:
- Implementazione della convalida dei moduli – Utilizza una convalida completa dei moduli sia lato cliente che lato server. La convalida lato cliente fornisce feedback e istruzioni immediati agli utenti, mentre la convalida lato server garantisce che solo i dati validi raggiungano il server.
- Convalida lato server – Stabilisci rigide regole di convalida lato server per verificare che i dati in entrata soddisfino tutti i criteri (campi obbligatori, tipi di dati e formati). Questo livello di convalida è fondamentale in quanto gli utenti malintenzionati non possono bypassarlo.
- Aggiornamenti regolari del codice – Mantieni la tua applicazione e i suoi elementi aggiornati. Aggiornamenti regolari ti assicurano di beneficiare dei miglioramenti e delle ultime patch di sicurezza, riducendo il rischio di errori dovuti a codice obsoleto o incompatibile.
Cause dell’errore 422
Comprendere le cause di un codice di stato 422 è fondamentale per la risoluzione dei problemi e la prevenzione efficaci. Ecco alcuni motivi comuni per cui potrebbe verificarsi questo errore:
- Dati non validi: la richiesta contiene dati che non rispettano il formato o i vincoli previsti, come indirizzi email non validi o date formattate in modo errato.
- Tipo di dati errato: i campi di richiesta hanno tipi di dati che non corrispondono a ciò che il server si aspetta. Ad esempio, un campo contiene una scritta invece di un numero.
- Errori semantici: la richiesta è sintatticamente corretta ma semanticamente errata. In altre parole, i dati non riescono a soddisfare le regole logiche o la logica aziendale definita dal server.
- Campi obbligatori mancanti: uno o più campi obbligatori sono assenti nella richiesta, impedendo al server di elaborarla.
- Regole rigide del server: il server ha regole di convalida rigorose che la richiesta non riesce a soddisfare, spesso richiedono formati o valori di dati precisi.
- Richieste API non valide: le chiamate API non sono conformi ai parametri o allo schema definiti, quindi il server le rifiuta.
- Errori lato server: problemi sul server, come la logica di convalida non configurata correttamente, possono causare un errore 422.
- Tabelle del database danneggiate: per applicazioni come WordPress, un database corrotto può impedire la corretta elaborazione delle richieste valide.
Variazioni del codice di stato 422
L’errore 422 “Unprocessable Entity” ha molte varianti. L’esatto messaggio di errore dipende dall’applicazione, dal server web e dal problema coinvolto nell’interazione. Di seguito sono riportati alcuni dei framing più frequenti del codice di stato 422.
- 422 Error “Unprocessable Entity”
- HTTP error code 422 unprocessable entity
- Codice errore: 422
- error submitting cart: error: request failed with status code 422
- error: request failed with status code 422
Qual è l’impatto dell’errore 422 sulla SEO e sull’esperienza utente?
Il codice di errore 422 può influire in modo significativo sull’search engine optimization (SEO) e sull’esperienza utente. Quindi, dovresti esserne consapevole nel caso in cui il tuo sito web inizi a produrlo ed essere proattivo nel risolverlo.
Impatto sulla SEO
- Problemi di scansione e indicizzazione: i motori di ricerca potrebbero riscontrare errori 422 quando tentano di eseguire la scansione e l’indicizzazione del tuo sito web. Se le pagine essenziali restituiscono costantemente questo errore, potrebbero non essere indicizzate, riducendo la visibilità nei risultati di ricerca.
- Segnali SEO negativi: errori 422 frequenti possono segnalare ai motori di ricerca che un sito web ha problemi tecnici, che potenzialmente influiscono sul suo ranking. I motori di ricerca danno la priorità ai siti web con esperienze utente fluide e prive di errori.
- Accessibilità dei contenuti: se il contenuto è inaccessibile a causa di errori 422, questo può comportare la perdita di opportunità di posizionamento su parole chiave pertinenti, diminuendo le prestazioni SEO complessive del sito.
Impatto sull’esperienza utente
- Utenti frustranti: incontrare un errore 422 può frustrare gli utenti, in quanto indica che le loro azioni, come l’invio di moduli o l’immissione di dati, non vengono elaborate. Questo può portare a insoddisfazione e una frequenza di rimbalzo più alta.
- Perdita di affidabilità e credibilità: errori persistenti possono minare la fiducia degli utenti nell’affidabilità di un sito web, potenzialmente dissuadendoli dal tornare.
- Tasso di conversione ridotto: se gli utenti non possono completare le azioni desiderate a causa di errori 422, come l’acquisto di prodotti o la registrazione a dei servizi, ciò può influire direttamente sui tassi di conversione e sulle entrate.
Nel complesso, dovresti monitorare regolarmente le prestazioni SEO del tuo sito web e i segnali ai motori di ricerca. Uno strumento utile è Google Search Console, che ti consente di vedere la risposta i codici che il tuo sito web invia ai crawler di Google, individuare potenziali problemi e risolverli prima che danneggino il tuo punteggio SEO.
Qual è la differenza tra i codici di stato 400 e 422?
I codici di stato 400 “Bad Request” e 422 “Unprocessable Entity” descrivono una richiesta del cliente problematica, ma segnalano problemi diversi.
Con un errore 400 Bad Request, il server web dice al client che non può capire la richiesta a causa di sintassi non corretta, frame della richiesta non valido o problemi strutturali.
In una risposta 422 Unprocessable Entity, il server web informa il client che comprende la sintassi della richiesta ma non può elaborarla a causa di errori semantici (ad es. dati, errori logici, ecc.)
Conclusione
Gestire efficacemente il codice di errore 422 è essenziale per offrire un’esperienza utente senza interruzioni e ottimizzare le prestazioni SEO. Comprendendo le sue cause e implementando pratiche solide, è possibile ridurne l’occorrenza.
Misure proattive come aggiornamenti regolari del codice e convalida completa dei dati risolvono problemi immediati e migliorano l’affidabilità e la professionalità complessive della tua applicazione web o del tuo sito web.