412

Precondition Failed

Ufficiale Codici di sotto-stato
Le precondizioni non erano soddisfacenti, la richiesta non è stata accolta.

Specifica del codice di stato HTTP 412

Il codice di stato 412 Precondition Failed indica che una o più condizioni fornite nei campi dell'intestazione della richiesta sono state valutate false quando sono state testate sul server. Questo codice di risposta consente al client di porre delle precondizioni sullo stato attuale della risorsa (le sue rappresentazioni e i suoi metadati) e, quindi, di impedire che il metodo di richiesta venga applicato se la risorsa di destinazione si trova in uno stato inaspettato.

Fonte / Citazione da: Il codice di stato HTTP 412 Precondition Failed è specificato dalla sezione 4.2 di RFC7232.

Come lanciare un codice di stato 412 con PHP?

Per lanciare il codice di stato HTTP 412 su una pagina web, si può usare la funzione PHP http_response_code. La sintassi è la seguente: http_response_code(412) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Test del codice di stato HTTP 412

Per poter visualizzare il codice di stato HTTP (in questo caso 412 Precondition Failed) e altre informazioni sul lato client, è necessario aprire la console di sviluppo con F12. Quindi navigare nella scheda "Rete". Ora la pagina può essere aperta, il sito web (ad esempio index.php) dovrebbe essere visibile nella scheda Rete. Questo deve essere selezionato e poi deve essere selezionata la sezione Herder. L'utente vedrà quindi il seguente risultato:

Codice di stato 412 Precondition Failed
Panoramica
URL: https://http-statuscode.com/errorCodeExample.php?code=412
Stato: 412 Precondition Failed
Quelle: Network
Indirizzo IP: XX.XX.XX.XX
Codice di stato 412 Precondition Failed

Come posso risolvere il problema del codice di stato 412?

1. capire la causa

Controllare l'header della precondizione: innanzitutto identificare quale precondizione è stata impostata nell'header della richiesta e non è stata soddisfatta. Potrebbe trattarsi di un'intestazione If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since o di un'intestazione If-Range.

2. Controllare i metadati della risorsa

E-Tag e Last-Modified header: controllare i metadati della risorsa richiesta. Confrontare il valore E-Tag o la data Last-Modified della risorsa con il valore specificato nella richiesta per identificare le discrepanze.

3. Correggere la richiesta

Adeguare le intestazioni: Se il controllo mostra che i valori nelle intestazioni delle condizioni della richiesta non corrispondono allo stato attuale della risorsa, regolarli di conseguenza.

Rimuovere le intestazioni non necessarie: In alcuni casi, può essere utile rimuovere alcune intestazioni condizionali se non sono assolutamente necessarie per la richiesta.

4. Gestione della cache

Controllo della cache: Assicurarsi che la richiesta non sia influenzata da uno stato di cache della risorsa. Se necessario, cancellare la cache o utilizzare le intestazioni Cache-Control per bypassare la cache.

5. Configurazione del server

Verifica della configurazione: verificare se sul server sono presenti regole o configurazioni speciali che potrebbero causare questo problema, soprattutto in relazione all'elaborazione di richieste condizionali.

6. Comunicazione con lo sviluppatore dell'API/server

Documentazione e supporto: se il problema persiste, consultare la documentazione dell'API o del server e, se necessario, contattare il supporto o la comunità di sviluppatori per ulteriore assistenza.

7. Gestione degli errori nell'applicazione

: verificare che non vi siano regole o configurazioni particolari sul server che possano causare il problema, soprattutto in relazione all'elaborazione di richieste condizionali. Gestione degli errori nell'applicazione

Gestione robusta degli errori: implementare una gestione robusta degli errori nell'applicazione per rispondere in modo appropriato al codice di stato 412 Precondition Failed, ad esempio reinviando la richiesta con intestazioni personalizzate o notificando all'utente l'errore.

8. Test e monitoraggio

Test completi: Testate la vostra applicazione in varie condizioni per assicurarvi che risponda correttamente agli errori 412 Precondition Failed.

Monitoraggio: Utilizzate strumenti di monitoraggio per rilevare e analizzare tali errori in modo da poter reagire proattivamente ai problemi.

Come creare la propria pagina di errore per il codice di stato 412

Creare la propria pagina di errore 412 Precondition Failed è relativamente facile sia con il server web "Apache" che con "NGINX".

Apache Webserver

Il server web "Apache" è uno dei server web più comuni su Internet. Per creare la propria pagina di errore 412 Precondition Failed in "Apache", è necessario apportare la seguente modifica al file seguente.

File: .htaccess
ErrorDocument 412 /errors/412.html

NGINX Webserver

Simile al server web "Apache", anche "NGINX" è ampiamente utilizzato su Internet. Per creare la propria pagina di errore 412 Precondition Failed in "NGINX", è necessario apportare la seguente modifica al file seguente.

File: sites-enabled/default
error_page 412 /412.html;
location = /412.html {
    root /usr/share/nginx/html;
    internal;
}

Compatibilità con i browser del codice di stato 412

Chrome no data
Edge no data
Firefox no data
Opera no data
Safari no data
Chrome Android no data
Firefox for Android no data
Opera Android no data
Safari on iOS no data
Internet no data
WebView Android no data

Costanti nei linguaggi di programmazione

HttpStatusCode.PreconditionFailed
http.StatusPreconditionFailed
Response::HTTP_PRECONDITION_FAILED
httplib.PRECONDITION_FAILED
http.client.PRECONDITION_FAILED
http.HTTPStatus.PRECONDITION_FAILED
:precondition_failed

Codici di stato secondari del codice di stato 412

I codici di stato secondari sono puramente tecnici e non devono mai essere inviati all'utente. Ad esempio, se viene lanciato il codice di stato 412.1, questo può essere registrato, ma il codice di stato 412 sarà inviato all'utente.:
412.0 Precondition failed
HTTP IIS, Non ufficiale
Autore: Tony Brüser
Autore: Tony Brüser

Tony Brüser è un entusiasta sviluppatore web con una predilezione per i codici di stato HTTP.

LinkedInGitHub