302 Trovato: Cos’è e come risolverlo

Un messaggio 302 trovato è un HTTP response status code che indica che la risorsa richiesta è stata temporaneamente spostata in un altro URI. Poiché la posizione o la direttiva di reindirizzamento corrente potrebbero essere modificate in futuro, un client che riceve un codice di risposta 302 Found dovrebbe continuare a utilizzare l’URI originale per le richieste future.,

Sfortunatamente, può essere difficile distinguere tra tutti i possibili codici di risposta HTTP e determinare la causa esatta di errori come il codice302 Found. Esistono decine di possibili codici di stato HTTP utilizzati per rappresentare la complessa relazione tra il client, un’applicazione Web, un server Web e la moltitudine di servizi Web di terze parti che potrebbero essere in uso, quindi determinare la causa di un particolare codice di stato può essere difficile., In questo articolo esamineremo il codice302 Found esaminando alcuni suggerimenti per la risoluzione dei problemi, insieme ad alcune potenziali correzioni per problemi comuni che potrebbero causare questo problema all’interno delle proprie applicazioni Web, quindi andiamo ad esso!

Il problema è Server-Side

Tutti i codici di stato della risposta HTTP che si trovano nella categoria3xxsono consideratiredirection messages. Tali codici indicano all’agente utente (cioè al browser web) che è necessaria un’azione aggiuntiva per completare la richiesta e accedere alla risorsa desiderata., A differenza di client error responses trovato nel 4xx codici, come il 404 Not Found Error abbiamo esplorato recentemente, che potrebbe derivare da un client o un problema lato server, 302 Found codice indica in genere un problema sull’attuale server web che ospita l’applicazione.

Detto questo, l’aspetto di un302 Found di solito non è qualcosa che richiede molto intervento da parte dell’utente. Tutti i browser moderni rileveranno automaticamente il codice di risposta302 Found ed elaboreranno automaticamente l’azione di reindirizzamento temporaneo., Il server Web che ospita l’applicazione includerà in genere un’intestazione Location speciale come parte della risposta che invia al client. Questa intestazioneLocation indica il nuovo URL in cui è possibile trovare la risorsa richiesta. Ad esempio, se arriva una richiesta per accedere all’URL , ma il server Web è configurato per forzare il reindirizzamento a una versione sicura utilizzando https, la risposta del server includerà l’intestazione Location: https://airbrake.io., Questo indica al browser che dovrebbe reindirizzare questa singola richiesta a all’URL protetto di. Nella maggior parte dei casi, il browser rileverà automaticamente questo codice di risposta 302 Found, leggerà il nuovo URL Location e reindirizzerà la richiesta a quella nuova posizione.

Tuttavia, è importante tenere presente che il302 Found codice di risposta viene utilizzato per scopi completamente diversi rispetto al301 Moved Permanently abbiamo esaminato la scorsa settimana., Nel caso del primo, il reindirizzamento dovrebbe essere temporaneo (cioè solo per la richiesta corrente e singola) — il browser dovrebbe “ricordare” l’URI originale ed elaborare eventuali richieste future utilizzando lo stesso URI. Tuttavia, con un codice 301 Moved Permanently al browser viene detto che l’URI originale non è più valido, quindi tutte le richieste future dovrebbero utilizzare il nuovo URI fornito dall’intestazione Location.,

Poiché il 302 Found indica che qualcosa è andato storto all’interno del server della tua applicazione, possiamo in gran parte ignorare il lato client delle cose. Se stai cercando di diagnosticare un problema con la tua applicazione, puoi ignorare immediatamente la maggior parte del codice e dei componenti lato client, come HTML, CSS (cascading Style Sheets), JavaScript lato client e così via. Questo non si applica esclusivamente ai siti web, sia., Molte applicazioni smart phone che hanno un’interfaccia utente dall’aspetto moderno sono in realtà alimentati da una normale applicazione web dietro le quinte; uno che è semplicemente nascosto all’utente. Se si utilizza tale applicazione e si verifica un 302 Found, il problema non sarà correlato all’app installata sul telefono o sul dispositivo di test locale. Invece, sarà qualcosa sul lato server, che sta eseguendo la maggior parte della logica e dell’elaborazione dietro le quinte, al di fuori della competenza dell’interfaccia locale presentata all’utente.,

Se l’applicazione genera codici di risposta 302 Found imprevisti, è possibile eseguire una serie di passaggi per diagnosticare il problema.

Inizia con un backup completo dell’applicazione

Come con qualsiasi cosa, è meglio averlo giocato sul sicuro all’inizio piuttosto che rovinare qualcosa e venire a pentirsene più tardi lungo la strada. Pertanto, è fondamentale eseguire un backup completo dell’applicazione, del database e così via, prima di tentare qualsiasi correzione o modifica al sistema., Ancora meglio, se ne hai la possibilità, crea una copia completa dell’applicazione su un server secondario staging che non è “live” o non è altrimenti attivo e disponibile al pubblico. Questo ti darà un terreno di prova pulito con cui testare tutte le potenziali correzioni per risolvere il problema, senza minacciare la sicurezza o la santità della tua applicazione live.

Diagnosi di un codice di risposta trovato 302

A302 Found il codice di risposta indica che la risorsa richiesta deve essere temporaneamente accessibile in un URI diverso., Tuttavia, è del tutto possibile che il server sia configurato in modo errato, causando una risposta impropria con 302 Found codici, invece del codice standard e atteso 200 OK di una normale richiesta funzionale. Pertanto, gran parte della diagnosi del problema passerà attraverso il processo di doppio controllo di quali risorse/URL stanno generando 302 Found codici di risposta e determinare se questi codici sono appropriati o meno.,

Se la tua applicazione risponde con 302 Found codici che non dovrebbe emettere, questo è un problema che potrebbero verificarsi anche molti altri visitatori, ostacolando drasticamente la capacità della tua applicazione di servire gli utenti. Esamineremo alcuni suggerimenti e trucchi per risolvere il problema. Se nulla qui funziona, non dimenticare che Google è tuo amico. Prova a cercare termini specifici relativi al problema, ad esempio il nome del software CMS o del server Web dell’applicazione, insieme a 302 Found., È probabile che troverai altri che hanno riscontrato questo problema e hanno trovato una soluzione.

Risoluzione dei problemi sul Server-Side

Ecco alcuni consigli per aiutarvi a risolvere quello che potrebbe essere la causa del 302 Found per apparire sul lato server di cose:

Confermare la Configurazione del Server

l’applicazione è probabile che in esecuzione su un server che utilizza uno dei due server web più diffuso software, Apache o nginx., Al momento della pubblicazione, entrambi questi server web costituiscono over 84% del software web server del mondo! Pertanto, uno dei primi passi che puoi compiere per determinare cosa potrebbe causare questi codici di risposta 302 Found è controllare i file di configurazione per il software del tuo server Web per istruzioni di reindirizzamento involontarie.

Per determinare quale server Web sta utilizzando l’applicazione, è necessario cercare un file chiave. Se il tuo server web è Apache, cerca un file.htaccess all’interno della directory principale del file system del tuo sito web., Ad esempio, se la tua applicazione si trova su un host condiviso, probabilmente avrai un nome utente associato all’account di hosting. In tal caso, la directory radice dell’applicazione si trova in genere nel percorso di /home/<username>/public_html/, quindi il file .htaccess si trova in /home/<username>/public_html/.htaccess.

Se si trova il file .htaccess, aprirlo in un editor di testo e cercare le linee che utilizzano le direttive RewriteXXX, che fanno parte del modulo mod_rewrite in Apache., Coprire esattamente come funzionano queste regole è ben oltre lo scopo di questo articolo, tuttavia, il concetto di base è che una direttiva RewriteCond definisce un modello basato su testo che verrà abbinato agli URL inseriti. Se un URL corrispondente viene richiesto da un visitatore del sito ,la direttivaRewriteRule che segue una o più direttiveRewriteCond viene utilizzata per eseguire il reindirizzamento effettivo della richiesta all’URL appropriato.,

Per esempio, qui è un semplice RewriteCond e RewriteRule combinazione che soddisfa tutte le richieste in arrivo per example.com e stabilisce temporaneamente il reindirizzamento alla stessa URI su temporary-example.com dominio invece:

RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1 

si Noti la extra bandiera alla fine del RewriteRule, in cui si afferma esplicitamente che il codice di risposta dovrebbe essere 302 indica user agent (browser) che si tratta di un temporary redirect., Quindi, se trovate qualche strano RewriteCond o RewriteRule istruzioni .htaccess file che non sembrano appartenere, temporaneamente commentando loro (utilizzando il # carattere prefisso) e riavviare il server web per vedere se questo risolve il problema.

D’altra parte, se il tuo server è in esecuzione su nginx, dovrai cercare un file di configurazione completamente diverso., Per impostazione predefinita questo file si chiamanginx.conf e si trova in una delle poche directory comuni:/usr/local/nginx/conf,/etc/nginx, o/usr/local/etc/nginx. Una volta individuato, apri nginx.conf in un editor di testo e cerca le direttive rewrite che utilizzano il flag redirect. Ad esempio, ecco un semplice block directive (cioè, un insieme di direttive) che consente di configurare un virtual server, creando un redirect temporaneo da example.com per il temporary-example.com:

server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}

Rewrite direttive nginx sono simili per il RewriteCond e RewriteRule direttive trovato nel Apache in quanto tendono a contenere più complessi del testo-base di modelli per la ricerca., In entrambi i casi, esaminare il filenginx.conf per eventuali direttive anomalerewrite che includono il flagredirect (il flag alternativopermanent emetterà301 codici di risposta invece). Commentare eventuali anomalie prima di riavviare il server per verificare se il problema è stato risolto.

Verificare la presenza di Software obsoleto

Nel documento delle specifiche RFC per HTTP 1.,0 ha dichiarato che lo scopo di un codice di risposta 302 Found era indicare che il client doveva eseguire un reindirizzamento temporaneo. Tuttavia, molti browser più recenti elaborerebbero un302 codice ricevuto tramite unaPOST richiesta come unaGET richiesta errata, che ha causato problemi e confusione per alcuni software di server Web che cercano di ottenere i browser per eseguire l’attività corretta quando era richiesto il reindirizzamento temporaneo. Per risolvere questo il HTTP 1.,1 Il documento delle specifiche RFC ha aggiunto i codici di risposta303 See Other e307 Temporary Redirect, che sono mezzi espliciti per gestire rispettivamentePOST-to-GET e le risposte dirette temporanee.

Setacciare i log

Quasi ogni applicazione web manterrà una qualche forma di log lato server. Application logs sono in genere la cronologia di ciò che l’applicazione ha fatto, ad esempio quali pagine sono state richieste, a quali server si è connessa, quali risultati del database fornisce e così via., Server logs sono correlati all’hardware effettivo che esegue l’applicazione e spesso forniscono dettagli sullo stato e lo stato di tutti i servizi connessi, o anche solo il server stesso. Google “logs” se si sta utilizzando un CMS, o “logs” e ” logs ” se si sta eseguendo un’applicazione personalizzata, per ottenere ulteriori informazioni sulla ricerca dei log in questione.

Debug del codice dell’applicazione

Se tutto il resto fallisce, potrebbe essere che un problema in un codice personalizzato all’interno dell’applicazione stia causando il problema., Prova a diagnosticare da dove potrebbe provenire il problema tramite il debug manuale dell’applicazione, insieme all’analisi dei registri dell’applicazione e del server. Idealmente, eseguire una copia dell’intera applicazione su una macchina di sviluppo locale ed eseguire un processo di debug passo-passo, che consentirà di ricreare lo scenario esatto in cui si è verificato 302 Found e visualizzare il codice dell’applicazione nel momento in cui qualcosa va storto.,

Non importa quale sia la causa, l’aspetto di un302 Found all’interno della propria applicazione Web è una forte indicazione che potrebbe essere necessario uno strumento di gestione degli errori per aiutarti a rilevare automaticamente tali errori in futuro. Il meglio di questi strumenti può anche avvisare te e il tuo team immediatamente quando si verifica un errore. Il software di monitoraggio degli errori di Airbrake fornisce il monitoraggio degli errori in tempo reale e la segnalazione automatica delle eccezioni per tutti i progetti di sviluppo., La dashboard Web all’avanguardia di Airbrake ti assicura di ricevere aggiornamenti di stato 24 ore su 24 sullo stato dell’applicazione e sui tassi di errore. Indipendentemente da ciò su cui stai lavorando, Airbrake si integra facilmente con tutti i linguaggi e i framework più diffusi. Inoltre, Airbrake semplifica la personalizzazione dei parametri di eccezione, mentre ti dà il controllo completo del sistema di filtraggio degli errori attivo, in modo da raccogliere solo gli errori che contano di più.,

Dai un’occhiata al software di monitoraggio degli errori di Airbrake oggi e scopri di persona perché così tanti dei migliori team di ingegneri del mondo usano Airbrake per rivoluzionare le loro pratiche di gestione delle eccezioni!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *