Passa al contenuto principale

6. 511 Autenticazione di rete richiesta (Network Authentication Required)

Il codice di stato 511 indica che il client deve autenticarsi per ottenere l'accesso alla rete.

La rappresentazione della risposta dovrebbe (SHOULD) contenere un collegamento a una risorsa che consenta all'utente di inviare le credenziali (ad esempio, con un modulo HTML).

Si noti che la risposta 511 non dovrebbe (SHOULD NOT) contenere una sfida o l'interfaccia di accesso stessa, perché i browser mostrerebbero l'interfaccia di accesso come associata all'URL originariamente richiesto, il che può causare confusione.

Lo stato 511 non dovrebbe (SHOULD NOT) essere generato dai server di origine; è destinato all'uso da parte di proxy intercettanti che sono interposti come mezzo per controllare l'accesso alla rete.

Le risposte con il codice di stato 511 non devono (MUST NOT) essere memorizzate da una cache.

6.1. Il codice di stato 511 e i portali captive (Captive Portals)

Il codice di stato 511 è progettato per mitigare i problemi causati dai "portali captive" al software (specialmente agli agenti non-browser) che si aspetta una risposta dal server a cui è stata fatta una richiesta, non dall'infrastruttura di rete intermedia. Non è destinato a incoraggiare la distribuzione di portali captive -- solo a limitare i danni da essi causati.

Un operatore di rete che desidera richiedere un'autenticazione, l'accettazione di termini o altre interazioni dell'utente prima di concedere l'accesso di solito lo fa identificando i client che non l'hanno fatto ("client sconosciuti") utilizzando i loro indirizzi MAC (Media Access Control).

I client sconosciuti hanno quindi tutto il traffico bloccato, ad eccezione di quello sulla porta TCP 80, che viene inviato a un server HTTP (il "server di accesso") dedicato al "login" dei client sconosciuti, e naturalmente il traffico verso il server di accesso stesso.

Ad esempio, un user agent potrebbe connettersi a una rete ed effettuare la seguente richiesta HTTP sulla porta TCP 80:

GET /index.htm HTTP/1.1
Host: www.example.com

Dopo aver ricevuto tale richiesta, il server di accesso genererebbe una risposta 511:

HTTP/1.1 511 Network Authentication Required
Content-Type: text/html

<html>
<head>
<title>Network Authentication Required</title>
<meta http-equiv="refresh"
content="0; url=https://login.example.net/">
</head>
<body>
<p>You need to <a href="https://login.example.net/">
authenticate with the local network</a> in order to gain
access.</p>
</body>
</html>

Qui, il codice di stato 511 assicura che i client non-browser non interpreteranno la risposta come proveniente dal server di origine, e l'elemento META HTML reindirizza lo user agent al server di accesso.