404 Not Found – Errori comuni HTTP : Codici stato HTTP

L’errore 404 Non Trovato (Inglese 404 Not Found), è un codice di stato del protocollo HTTP e indica che il client è in grado di comunicare con il server, ma che il server non ha trovato ciò che è stato richiesto.

A parte l’errore 404, analizziamo i codici di stato e i relativi messaggi HTTP. Tali codici sono destinati a trasmettere informazioni importanti per l’utente. Può essere utile conoscerli.

 

Codici di Stato

Dietro ogni pagina di errore che si vede sul web c’è un codice di stato HTTP che viene inviato dal server. I codici di stato sono disponibili nel formato di 3 cifre. La prima cifra indica la classe del codice di stato:

  • 1XX  Scopo informativo
  • 2XX  Indica successo
  • 3XX  Reindirizzamento

Nessuna di queste tre classi indica un errore HTML, mentre le pagine con lo stato 4XX e 5XX indicano errore:

  • 4XX Errore lato client
  • 5XX Errore lato server

 

Errori lato client (4XX)

Vediamo cosa succede in background e cosa si può fare al riguardo.

400 – Bad Request (Richiesta non valida)

Ogni volta che il client invia una richiesta al server che non è in grado di comprendere riceve la pagina di errore 400 Bad Request. Solitamente questo succede perchè i dati inviati dal browser non rispettano le regole del protocollo HTTP.

Quando visualizzate una pagina di errore 400 è perchè c’è qualcosa di instabile lato client: un sistema operativo non  protetto, una connessione internet instabile, un browser difettoso o un problema di caching.

401 – Authorization Required (Autorizzazione richiesta)

Quando c’è una pagina web protetta da password dietro richiesta del cliente, il server risponde con la pagina 401 Authorization Required, questo non è un errore ma chiede all’utente di fornire una combinazione login-password per l’accesso. Se si dispone delle credenziali si può andare avanti senza alcun problema e si ottiene l’accesso al sito protetto. In caso contrario, si viene reindirizzati alla pagina di errore.

403 – Forbidden (Vietato)

La pagina di errore 403 Forbidden viene visualizzata quando il server rifiuta l’accesso al cliente, questo non è né una malformazione né un problema di autorizzazione.

Il motivo più comune è che il proprietario del sito non permette ai visitatori di sfogliare la struttura delle directory del file del sito. Quando questo tipo di protezione è abilitata, non è possibile accedere alle cartelle direttamente sul sito web. È possibile impostare la protezione per motivi di sicurezza sul proprio sito.

404 – Not Found (Non Trovato)

L’errore 404 è il più noto codice di stato HTTP, il browser restituisce una pagina di errore 404 quando il server non trova nulla sul percorso richiesto.

Ci sono due motivi principali che possono causare l’errore 404, il visitatore non ha digitato correttamente l’URL oppure la struttura dei permalink del sito è stato modificata e i link in entrata puntano a pagine che sono state spostate in diverse posizioni. Questo può anche succedere quando un sito è stato trasferito verso un altro server Web e i DNS puntano ancora alla vecchia posizione, questo tipo di problema generalmente scompare dopo breve tempo.

408 – Request Time-Out (Richiesta fuori Tempo)

Quando la richiesta del client richiede troppo tempo il server chiude la connessione e il browser visualizza un errore 408 Time-Out.

Il time-out si verifica perché il server non ha ricevuto una richiesta completa da parte del client entro il termine che era disposto ad aspettare. Un errore 408 può verificarsi a causa dell’eccessivo carico di lavoro sul server o lato client.

410 – Gone

L’errore 410 è molto simile all’errore 404. Entrambi gli errori indicano che il server non trova il file richiesto, ma mentre l’errore 404 suggerisce che il file di destinazione può essere disponibile da qualche parte sul server, l’errore 410 indica una condizione permanente.

L’errore 410 mostra al client che la risorsa è stata resa indisponibile intenzionalmente e il proprietario del sito vuole rimuovere dal web il link in entrata.

 

Errori lato client (5XX)

500 – Internal Server Error (Errore Interno del Server)

Questo codice di errore viene utilizzato ogni volta che il server rileva un condizione imprevista che impedisce di soddisfare la richiesta del client. Il codice di errore 500 è generico.

Anche se il problema non è lato client, si possono fare alcune cose per cercare di risolverlo, come ricaricare la pagina (l’errore può essere temporaneo), cancellare la cache del browser o cancellare i cookie del browser e riavviare il browser.

In ogni caso quando viene visualizzata la pagina di errore 500 sarà saggio contattare il proprio fornitore di hosting, perchè molto probabilmente c’è un errore di autorizzazioni, un file .htaccess corrotto o un limite di memoria troppo basso. Se si dispone di un sito WordPress, l’errore 500 può anche essere causato da un plug-in di terze parti, è possibile verificare questo disattivando i plugin, uno per uno, fino a trovare il colpevole.

502 – Bad Gateway 

Il codice di errore 502 rappresenta un problema di comunicazione tra due server e si verifica quando il client si connette ad un server che agisce come gateway o proxy ed ha bisogno di accedere a un server upstream.

Nella maggior parte dei casi i due server che comunicano non sono d’accordo sul protocollo e lo lo scambio dei dati. Questo di solito accade quando una delle macchine non è configurata correttamente.

503 – Service Temporarily Unavailable (Servizio temporaneamente non disponibile)

Questo codice di errore indica che le risorse a disposizione sono esaurite, es. un sovraccarico temporaneo sul server. L’errore 503 errore significa che il server web non è attualmente disponibile, questa è di solito una condizione temporanea che verrà risolta con un certo ritardo.

504 – Gateway Time-Out 

E’ un problema di comunicazione Server-Server dietro il Gateway, molto simile all’errore Bad Gateway 502. Quando viene restituito il codice di stato 504 c’è anche un server di livello superiore in background che dovrebbe inviare i dati al server connesso al nostro client. In questo caso, il server di livello inferiore non riceve una risposta tempestiva dal server upstream cui aveva accesso.

 

Per maggiori informazioni sui codici di errore consulta anche questa pagina.

 

Alla Prossima.

 

PHP è il linguaggio di scripting più importante per lo sviluppo web. E ‘gratuito, open source e server-side (il codice viene eseguito sul server). MySQL è un Relational Database Management System (RDBMS) che utilizza Structured Query Language (SQL), anch’esso è gratuito e open source. La combinazione di PHP e MySQL consente di creare praticamente qualsiasi tipo di sito web, dal modulo di contatto al portale aziendale.

 

Che cosa è PHP?

PHP è stato inizialmente creato come piattaforma di scripting, chiamato “Personal Home Page”. Oggi PHP (l’abbreviazione di Hypertext Preprocessor) è un’alternativa alle pagine di Microsoft ASP (Active Server Pages).

PHP è un linguaggio lato server (open source) che viene utilizzato per creare pagine web dinamiche, solitamente è usato in combinazione con un database MySQL su un server Linux / UNIX  e può essere anche integrato nell’HTML.

Una spiegazione completa di tutti i tag PHP, manuale d’uso e molti tutorial si trovano sulla pagina ufficiale di PHP .

 

Che cosa è MySQL?

MySQL è un Relational Database Management System (RDBMS) che utilizza Structured Query Language (SQL), anch’esso è gratuito e open source.

SQL è il linguaggio più popolare per l’aggiunta, l’accesso e la gestione dei contenuti in un database. E ‘ noto per la sua rapida elaborazione, affidabilità, facilità e flessibilità di utilizzo. MySQL è una parte essenziale di quasi tutte le applicazioni open source PHP, alcuni esempi per PHP / MySQL sono: phpBB, osCommerce,  Joomla e WordPress .

 

Creazione dell’utente e del database MySQL

Per creare un database MySQL, entriamo in cPanel (incluso nei nostri Piani Hosting) e clicchiamo su Database MySQL.

 

 

 

 

Per creare un nuovo database è necessario immettere il nome desiderato per il database e cliccare su Crea Database.

 

 

 

 

 

 

Verrà visualizzata una schermata di conferma, informando che il database è stato creato correttamente.

 

 

 

 

 

 

NB: Il database MySQL è stato creato con il nome utente (Account) come prefisso: nomeutente_nomedatabase, questo è il nome che si deve utilizzare per le applicazioni.

 

Ora è possibile continuare con la creazione di un utente che dovrebbe essere in grado di connettersi al database appena creato. Clicchiamo su Passa agli Utenti mySQL: per creare un utente è sufficiente inserire il nome utente, la password desiderata e cliccare su Crea Utente.

 

 

 

 

 

NB: Si dovrebbe sempre tenere a mente che il nome utente (Account cPanel) verrà aggiunto come prefisso a tutti i database e i nomi degli utenti creati.

 

Una volta che il database e il nome utente sono stati creati è possibile aggiungere alcuni privilegi per l’utente al database. Clicchiamo su Aggiungi un utente al database e su Invia.

 

 

 

 

Sarete reindirizzati ad una schermata in cui vi sarà chiesto di scegliere i privilegi desiderati. Si consiglia di selezionare tutti i privilegi.

 

Gestire il Database mySQL con phpMyAdmin

phpMyAdmin supporta la maggior parte delle funzioni di MySQL come sfogliare, creare, copiare e modificare i database, le tabelle, i campi e gli indici, eseguire query MySQL, gestire procedure e funzioni. Inoltre è possibile Importare dati da file CSV e SQL o esportare i dati in vari formati: CSV, SQL, XML, PDF, Word, Excel, LATEX e altri. La lista completa delle caratteristiche di PhpMyAdmin si trova nel sito ufficiale .

Per gestire il database appena creato clicchiamo su phpMyAdmin

 

 

 

 

Si aprirà una nuova pagina del Browser con phpMyAdmin caricato.

 

 

 

 

 

 

 

Selezionando il database sarà possibile effettuare molte operazioni: eseguire query MySQL, ottimizzare, riparare, gestire il backup o il ripristino del database e molto altro.

 

Creare una tabella in un Database 

Prima di tutto è necessario creare un tabella e impostare i campi corrispondenti in essa.

La creazione di una tabella in phpMyAdmin è semplice, basta cliccare su Crea Tabella, digitare il nome, selezionare il numero di campi e cliccare su Esegui.

 

 

 

 

 

Compiliamo i campi per il database e salviamo.

 

In alternativa, è possibile eseguire una query MySQL, che creerà la tabella.

Il formato è il seguente:

CREATE TABLE tablename (

Fields

)

I campi sono definiti come segue:

fieldname type(length) extra info,

I campi sono separati da virgola.

Per esempio, se si desidera creare una tabella chiamata Utenti con 3 campi in esso – Nome, Cognome e Età è necessario eseguire la seguente query:

CREATE TABLE Members
(
FirstName varchar(15),
LastName varchar(15),
Age int
);

 

Come connettersi al Database

Ora, stabiliamo una connessione al database MySQL. Questo è un passo estremamente importante, perché se lo script non riesce a connettersi al suo database, le query al database fallisce.

Una buona pratica quando si utilizzano i database è quello di impostare il nome utente, la password e i valori del database all’inizio del codice dello script.

$username=”nome_username”;
$password=”nome_password”;
$database=”nome_database”;

Sostituiamo “nome_utente”, “nome_password” e “nome_database” con il nome utente MySQL, password e database che verrà utilizzato dallo script.

Vi starete chiedendo se mantenere la password nel file è un rischio per la sicurezza. Non c’è bisogno di preoccuparsi perché il codice sorgente PHP viene elaborato dal server prima di essere inviato al browser, quindi il visitatore non vedrà il codice dello script nel codice sorgente della pagina.

Colleghiamo lo script PHP al database. Questo può essere fatto con la funzione PHP mysql_connect :

mysql_connect(localhost,$username,$password)

Questa linea dice a PHP di connettersi al server di database MySQL a ‘ localhost ‘ (localhost è il server MySQL, che di solito va sullo stesso server fisico come lo script).

Quando la connessione viene stabilita si deve selezionare il database che si desidera utilizzare, questo dovrebbe essere un database in cui il nome utente ha accesso. Questo passo può essere completato attraverso il seguente comando:

@mysql_select_db($database) or die( “Unable to select database”);

Se lo script non riesce a connettersi si fermerà l’esecuzione e verrà visualizzato il messaggio di errore:

Unable to select database

Una funzione PHP importante è la seguente:

mysql_close();

Questa è una funzione molto importante in quanto chiude la connessione al server. Lo script rimarrà in esecuzione se non si include questa funzione. Troppe connessioni MySQL aperte possono causare problemi per l’account.

 

Come interrogare il Database

Ci sono due modi per interrogare un database. Uno è quello di inserire un comando in PHP.

Un altro modo è di definire il comando come una variabile .

In questa parte della guida vi mostriamo il primo modo. Il comando sarà simile a questo:

mysql_query($query);

Cambiando la variabile, il comando può essere ripetuto più volte nel codice sorgente.

Questo è il codice completo che dovrebbe essere utilizzato per creare una tabella MySQL in PHP:

<?php
$user=”username”;
$password=”password”;
$database=”database”;
mysql_connect(localhost,$user,$password);
@mysql_select_db($database) or die( “Unable to select database”);
$query=”CREATE TABLE tablename(id int(6) NOT NULL auto_increment,first varchar(15) NOT NULL,last varchar(15) NOT NULL,field1-name varchar(20) NOT NULL,field2-name varchar(20) NOT NULL,field3-name varchar(20) NOT NULL,field4-name varchar(30) NOT NULL,field5-name varchar(30) NOT NULL,PRIMARY KEY (id),UNIQUE id (id),KEY id_2 (id))”;
mysql_query($query);
mysql_close();
?>

Inseriamo il database MySQL, username e password di MySQL nelle posizioni corrette sulle prime tre righe.

La query seguente compila la tabella. Ecco un esempio:

$query = “INSERT INTO tablename VALUES
(”,’$field1-name’,’$field2-name’,’$field3-name’,’$field4-name’,’$field5-name’)”;

Non è possibile inserire più valori rispetto al numero di campi che avete creato con la prima query.

 

Connessione tra mySQL e PHP

Dopo aver creato una tabella ed inserito i dati, si dovrà visualizzarla, ciò può essere fatto utilizzando un codice HTML che richiama lo script PHP.

Inizieremo l’esempio dall’inizio:

Il seguente codice HTML raccoglie i dati dalle caselle di testo e li passa allo script PHP:

 <form action=”insert.php” method=”post”>
Value1: <input type=”text” name=”field1-name”><br>
Value2: <input type=”text” name=”field2-name”><br>
Value3: <input type=”text” name=”field3-name”><br>
Value4: <input type=”text” name=”field4-name”><br>
Value5: <input type=”text” name=”field5-name”><br>
<input type=”Submit”>
</form>

Ora vi serve un nuovo script PHP per inserire i dati nel database.

<?php
$username=”username”;
$password=”password”;
$database=”your_database”;

$field1-name=$_POST[‘Value1’];
$field2-name=$_POST[‘Value2’];
$field3-name=$_POST[‘Value3’];
$field4-name=$_POST[‘Value4’];
$field5-name=$_POST[‘Value5’];

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( “Unable to select database”);

$query = “INSERT INTO tablename VALUES
(”,’$field1-name’,’$field2-name’,’$field3-name’,’$field4-name’,’$field5-name’);
mysql_query($query);
mysql_close();
?>

Questo script deve essere salvato come insert.php in modo che possa essere chiamato dal modulo HTML.

Ora che avete almeno un record nel database, può essere utile sapere come utilizzare PHP con questi dati.

Il primo comando necessario sarà SELECT FROM MySQL:

 SELECT * FROM tablename

Si tratta di una query MySQL di base che dice allo script di selezionare tutti i record della tabella. Dopo l’esecuzione della query il risultato verrà assegnato ad una variabile:

$query=”SELECT * FROM tablename”;
$result=mysql_query($query);

L’intero contenuto della tabella è ora incluso in un array PHP. Prima dell’uscita, in questi dati è necessario cambiare ogni pezzo in una variabile indipendente. Ci sono due fasi.

La prima è il conteggio delle righe. Prima di poter passare attraverso i dati nella variabile è necessario conoscere il numero delle righe del database. Si potrebbe, digitare questo nel codice, ma non è una buona soluzione, siccome il codice dello script dovrà essere cambiato ogni volta che viene aggiunta una nuova riga. Invece è possibile utilizzare il comando:

$num=mysql_numrows($result);

Il valore di $num sarà il numero di righe memorizzato in $result. Questo sarà utilizzato in un ciclo per ottenere tutti i dati e visualizzarli sullo schermo.

La seconda fase è quella di creare il ciclo. Ci vorrà ogni riga del risultato e stampare i dati memorizzati. Nel codice riportato di seguito, $ i è il numero di volte che il ciclo viene eseguito. In questo modo tutti i record vengono visualizzati.

 $i=0;
while ($i < $num) {
CODE
$i++;
}

Si tratta di un ciclo di base di PHP ed eseguirà il codice corretto un numero di volte, o gni volta che $i sarà incrementato di uno.

La parte finale dello script è quella di assegnare a ciascuna porzione di dati la sua variabile:

 $variable=mysql_result($result,$i,”fieldname”);

Quindi, per prendere ogni singolo pezzo di dati nel nostro database potremmo utilizzare il seguente:

$field1-name=mysql_result($result,$i,”field1-name”);
$field2-name=mysql_result($result,$i,”field2-name”);
$field3-name=mysql_result($result,$i,”field3-name”);
$field4-name=mysql_result($result,$i,”field4-name”);
$field5-name=mysql_result($result,$i,”field5-name”);

Non è necessario ottenere il campo ID, perché non c’è per l’utilizzo nella pagina di output.

Ora è possibile scrivere uno script completo per l’output dei dati. In questo script i dati non sono formattati quando viene stampato:

<?php
$username=”username”;
$password=”password”;
$database=”your_database”;

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( “Unable to select database”);
$query=”SELECT * FROM tablename”;
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo “<b><center>Database Output</center></b><br><br>”;

$i=0;
while ($i < $num) {

$field1-name=mysql_result($result,$i,”field1-name”);
$field2-name=mysql_result($result,$i,”field2-name”);
$field3-name=mysql_result($result,$i,”field3-name”);
$field4-name=mysql_result($result,$i,”field4-name”);
$field5-name=mysql_result($result,$i,”field5-name”);

echo “<b>$field1-name
$field2-name2</b><br>$field3-name<br>$field4-name<br>$field5-name<hr><br>”;

$i++;
}

?>

Questo output elenca tutti i valori memorizzati nel database. Questo vi darà un output di base. Fare la formattazione non è complicato. Tutto quello che dovete fare è usare l’HTML per stampare il risultato, includendo le variabili negli spazi corretti. Il modo più semplice per farlo è chiudendo il tag PHP e HTML. Quando si raggiunge una posizione variabile:

<? echo $variablename; ?>

nella posizione corretta del codice.

È anche possibile utilizzare il ciclo di PHP per ripetere il codice appropriato e includerlo come parte di una tabella più grande. Il risultato finale è il seguente:

<html>
<body>
<?php
$username=”username”;
$password=”password”;
$database=”your_database”;

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( “Unable to select database”);
$query=”SELECT * FROM tablename”;
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();
?>
<table border=”0″ cellspacing=”2″ cellpadding=”2″>
<tr>
<th><font face=”Arial, Helvetica, sans-serif”>Value1</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value2</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value3</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value4</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value5</font></th>
</tr>

<?php
$i=0;
while ($i < $num) {

$f1=mysql_result($result,$i,”field1″);
$f2=mysql_result($result,$i,”field2″);
$f3=mysql_result($result,$i,”field3″);
$f4=mysql_result($result,$i,”field4″);
$f5=mysql_result($result,$i,”field5″);
?>

<tr>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f1; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f2; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f3; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f4; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f5; ?></font></td>
</tr>

<?php
$i++;
}
?>
</body>
</html>

 

Alla Prossima

 

Questa che segue è la lista completa dei codici di stato e dei relativi messaggi definiti per HTTP.

 

1xx Informational : Richiesta ricevuta, continua l’elaborazione.

100 Continue : Il server ha ricevuto l’header della richiesta e il client deve procedere ad inviare il corpo della richiesta (solitamente nelle richieste di tipo POST).

101 Switching Protocols : Il richiedente ha richiesto di cambiare il protocollo in uso e il server è a conoscenza di ciò che dovrà fare.

 

2xx Success : L’azione è stata ricevuta con successo, compresa ed accettata.

200 OK : Risposta standard per le richieste HTTP andate a buon fine.

201 Created

202 Accepted : La richiesta di elaborazione è stata accettata ma non è ancora terminata.

203 Non-Authoritative Information

204 No Content

205 Reset Content

206 Partial Content

207 Multi-Status : In caso di risposte XML, quando più azioni possono essere richieste, i dettagli dei singoli stati sono dati nel corpo della risposta. Vedi WebDAV (RFC 4918) per le specifiche associate.

 

3xx Redirezione : Il client deve eseguire ulteriori azioni per soddisfare la richiesta.

300 Multiple Choices

301 Moved Permanently : Questa è tutte le future richieste andranno dirette ad un altro URI (specificato nell’header Location).

302 Found : Questo è il codice più usato ma anche un classico esempio di non aderenza agli standard nella pratica quotidiana. Infatti, le specifiche di HTTP/1.0 (RFC 1945) richiederebbero che il client esegua redirezioni temporanee (la descrizione originale era “Moved Temporarily”), ma i più diffusi browser l’hanno implementata come 303 descritta di seguito. Perciò, HTTP/1.1 ha aggiunto i codici di stato 303 e 307 per distinguere tra i due comportamenti. Comunque, la maggior parte delle applicazioni e dei framework web ancora usano il codice di stato 302 come se fosse il 303.

303 See Other (da HTTP/1.1) : La risposta alla richiesta può essere trovata sotto un’altra URI usando il metodo GET.

304 Not Modified

305 Use Proxy (da HTTP/1.1) : Molti client HTTP (come Mozilla ed Internet Explorer) non gestiscono correttamente le risposte con questo codice di stato.

306 Switch Proxy : Non più usato.

307 Temporary Redirect (da HTTP/1.1) : In quest’occasione, la richiesta dovrebbe essere ripetuta con un’altra URI, ma successive richieste possono essere ancora dirette a quella originale. In contrasto con 303, la richiesta di POST originale deve essere reiterata con un’altra richiesta di tipo POST.

 

4xx Client Error : La richiesta è sintatticamente scorretta o non può essere soddisfatta.

400 Bad Request : La richiesta non può essere soddisfatta a causa di errori di sintassi.

401 Unauthorized : Simile a 403/Forbidden, ma pensato per essere usato quando l’autenticazione è possibile ma è fallita o non può essere fornita.

402 Payment Required : L’intendimento originale prevedeva un suo utilizzo per realizzare meccanismi di digital cash/micropagamento, ma questo non si è mai verificato ed il codice non è mai stato utilizzato.

403 Forbidden : La richiesta è legittima ma il server si rifiuta di soddisfarla. Contrariamente al codice 401 Unauthorized, l’autenticazione non ha effetto.

404 Not Found : La risorsa richiesta non è stata trovata ma in futuro potrebbe essere disponibile.

405 Method Not Allowed : La richiesta è stata eseguita usando un metodo non permesso. Ad esempio questo accade quando di usa il metodo GET per inviare dati da presentare con un metodo POST.

406 Not Acceptable

407 Proxy Authentication Required

408 Request Timeout : Il tempo per inviare la richiesta è scaduto e il server ha terminato la connessione.

409 Conflict

410 Gone : Indica che la risorsa richiesta non è più disponibile e non lo sarà più in futuro.

411 Length Required : La richiesta non specifica la propria dimensione come richiesto dalla risorsa richiesta.

412 Precondition Failed 413 Request Entity Too Large : La richiesta è più grande di quanto il server possa gestire.

414 Request-URI Too Long : L’URI richiesto è troppo grande per essere processato dal server.

415 Unsupported Media Type : L’entità della richiesta è di un tipo non accettato dal server o dalla risorsa richiesta.

416 Requested Range Not Satisfiable

417 Expectation Failed

418 I’m a teapot : Questo è un tipico pesce d’aprile dell’ITEF (RFC 2324). Non si aspettano implementazioni in alcun server HTTP.

426 Upgrade Required (RFC 2817) : Il client dovrebbe cambiare il protocollo ed usare ad esempio il TLS/1.0. 449 Retry With Estensione di Microsoft: The request should be retried after doing the appropriate action.

 

5xx Server Error : Il server ha fallito nel soddisfare una richiesta apparentemente valida.

500 Internal Server Error : Messaggio di errore generico senza alcun dettaglio.

501 Not Implemented : Il server non è in grado di soddisfare il metodo della richiesta.

502 Bad Gateway

503 Service Unavailable : Il server non è al momento disponibile. Generalmente è una condizione temporanea.

504 Gateway Timeout

505 HTTP Version Not Supported : Il server non supporta la versione HTTP della richiesta.

509 Bandwidth Limit Exceeded : Questo codice di stato, benché usato da molti server, non è un codice di stato ufficiale in quanto non è specificato in alcuna RFC.