506

Variant Also Negotiates

Ufficiale
L'endpoint negozia se stesso

Spiegazione generale del codice di stato 506

Il codice di stato HTTP 506 Variant Also Negotiates è un indicatore di un problema specifico all'interno di un server che si verifica quando il server è distribuito in una configurazione che utilizza la cosiddetta negoziazione trasparente dei contenuti. Questo tipo di negoziazione dei contenuti viene utilizzato per gestire diverse versioni di una risorsa che possono essere fornite a seconda dei requisiti del client richiedente (ad esempio, lingue, formati di file o codifiche diverse).

In sostanza, il codice di stato 506 Variant Also Negotiates significa che c'è una configurazione errata sul server che porta a un ciclo infinito di negoziazione. Invece di selezionare una versione specifica della risorsa richiesta in base alle preferenze del cliente, la selezione stessa rimanda a un'altra negoziazione. Il risultato è che nessuna delle varianti viene consegnata perché il server è intrappolato in un ciclo di riferimenti, in cui una variante fa riferimento a un'altra, che a sua volta fa riferimento a un'altra, e così via.

Un semplice esempio: un cliente vuole una pagina web in una lingua specifica. Il server dispone di diverse versioni linguistiche del sito web e cerca di selezionare la versione più adatta. Tuttavia, se la configurazione del server non è corretta, il processo che dovrebbe selezionare la versione più adatta potrebbe fare riferimento a un'altra serie di trattative invece di effettuare una selezione definitiva. Il codice di stato 506 Variant Also Negotiates segnala al client che il server non è in grado di fornire una versione appropriata della risorsa a causa di questi conflitti interni o configurazioni errate.

In pratica, questo codice di stato viene visualizzato raramente perché presuppone una configurazione del server e una condizione di errore molto specifiche. Per risolvere il problema è necessario rivedere e correggere la configurazione del server per garantire che la negoziazione dei contenuti possa essere eseguita correttamente senza entrare in un ciclo infinito.

In pratica, questo codice di stato viene visualizzato raramente perché presuppone una configurazione del server e una condizione di errore molto specifiche.

Specifica del codice di stato HTTP 506

Il codice di stato 506 Variant Also Negotiates indica che il server ha un errore di configurazione interna: la risorsa variante scelta è configurata per impegnarsi da sola nella negoziazione trasparente dei contenuti e quindi non è un punto finale corretto nel processo di negoziazione.

Fonte / Citazione da: Il codice di stato HTTP 506 Variant Also Negotiates è specificato dalla sezione 8.1 di RFC2295.

Come lanciare un codice di stato 506 con PHP?

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

Test del codice di stato HTTP 506

Per poter visualizzare il codice di stato HTTP (in questo caso 506 Variant Also Negotiates) 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 506 Variant Also Negotiates
Panoramica
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Stato: 506 Variant Also Negotiates
Quelle: Network
Indirizzo IP: XX.XX.XX.XX
Codice di stato 506 Variant Also Negotiates

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

Creare la propria pagina di errore 506 Variant Also Negotiates è 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 506 Variant Also Negotiates in "Apache", è necessario apportare la seguente modifica al file seguente.

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

NGINX Webserver

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

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

Compatibilità con i browser del codice di stato 506

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

http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates
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