English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La struttura della richiesta HTTP e della risposta HTTP è simile, e ha la seguente struttura:
Inizia con la riga di stato+CRLF (riga di ritorno a capo)
Zero righe o più righe di modulo di intestazione+CRLF
Una riga vuota, come CRLF
Messaggi opzionali come file, dati di ricerca, output di ricerca
Per esempio, un'intestazione di risposta del server potrebbe apparire così:
HTTP/1.1 200 OK Content-Type: text/html Header2: ... ... HeaderN: ... (Riga vuota) <!doctype ...> <html> <head>...</head> <body> ... </body> </html>
La riga di stato contiene la versione HTTP, un codice di stato e un messaggio breve corrispondente al codice di stato.
La tabella seguente elenca i codici di stato HTTP che potrebbero essere restituiti dal server e i messaggi associati:
Codice di stato | Messaggio | 描述 |
---|---|---|
100 | Continua | Solamente una parte della richiesta è stata ricevuta dal server, ma il client continuerà questa richiesta fintanto che non viene rifiutata dal server |
101 | Cambiamento di protocolli | Protocollo di scambio di server |
200 | OK | La richiesta è stata confermata |
201 | Creato | La richiesta è completa, una nuova risorsa è stata creata |
202 | Accettato | La richiesta è stata accettata, ma non è stata elaborata completamente |
203 | Informazioni non autentiche | |
204 | Nessun contenuto | |
205 | Ripristina contenuto | |
206 | Contenuto parziale | |
300 | Scegli multiple choice | Una tabella di collegamenti ipertestuali, da cui l'utente può scegliere uno e accedere, supporta al massimo 5 collegamenti ipertestuali |
301 | Spostato permanentemente | La pagina richiesta è stata spostata a un nuovo URL |
302 | Trovato | La pagina richiesta è stata temporaneamente spostata a un nuovo URL |
303 | Vedi altro | La pagina richiesta si trova in un URL diverso |
304 | Non modificato | |
305 | Usa proxy | |
306 | Non utilizzato | Questo codice di stato non è più utilizzato, ma è stato conservato |
307 | Redirezione temporanea | La pagina richiesta è stata temporaneamente spostata a un nuovo URL |
400 | Richiesta errata | Il server non riconosce la richiesta |
401 | Unauthorized | 401 |
Non Autorizzato | La pagina richiesta richiede nome utente e password | 402 |
Pagamento Richiesto | Non Può Essere Utilizzato Attualmente | 403 |
Vietato | Accesso alla pagina richiesta vietato | 404 |
Non Trovato | Il server non può trovare la pagina richiesta | 405 |
Metodo Non Permesso | Il metodo specificato nella richiesta non è permesso | 406 |
Non Accettabile | Il server può creare una risposta che il client non può accettare | 407 |
Autenticazione del Proxy Richiesta | È necessario autenticare un server proxy prima di servire la richiesta | 408 |
Timeout della Richiesta | La richiesta è scaduta, la connessione è stata interrotta | 409 |
Conflitto | Scomparsa | La pagina richiesta non è più disponibile |
411 | Richiesto la Lunghezza | "Content-Length" non definito, il server rifiuta di accettare la richiesta |
412 | Condizioni Preliminari Fallite | Le condizioni preliminari sono state valutate false dal server |
413 | Entità Richiesta Troppo Grande | La richiesta è stata rifiutata perché l'entità richiesta è troppo grande |
414 | URL Richiesta Troppo Lunga | Il server rifiuta di accettare la richiesta perché l'URL è troppo lungo. Si verifica spesso quando si trasformano richieste "POST" in richieste "GET" con una grande quantità di informazioni di ricerca |
415 | Tipo di Media Non Supportato | Il server rifiuta di accettare la richiesta perché il tipo di media non è supportato |
417 | Fallito l'attesa | |
500 | Errore Interno del Server | La richiesta è incompleta, il server ha incontrato una situazione inattesa |
501 | Non Implementato | La richiesta è incompleta, il server non fornisce la funzione necessaria |
502 | Bad Gateway | La richiesta è incompleta, il server ha ricevuto una risposta non valida dal server di origine |
503 | Servizio non disponibile | La richiesta è incompleta, il server è stato riavviato o chiuso temporaneamente |
504 | Gateway Timeout | Timeout del gateway |
505 | Versione HTTP non supportata | Il server non supporta la versione HTTP specificata |
La tabella sottostante elenca i metodi della classe HttpServletResponse utilizzati per impostare il codice di stato:
S.N. | Metodo & 描述 |
---|---|
1 | public void setStatus ( int statusCode ) 此方法可以设置任意的状态码。如果您的响应包含一个特殊的状态码和一个文档,请确保在用PrintWriter返回任何内容前调用setStatus方法 |
2 | public void sendRedirect(String url) 此方法产生302响应,同时产生一个 Location 头部告诉URL一个新的文档 |
3 | public void sendError(int code, String message) 此方法将一个状态码(通常为 404)和一个简短消息,自动插入HTML文档中并发回给客户端 |
接下来的示例将会发送407错误码给浏览器,然后浏览器将会告诉您"需要认证!!!"。
<html> <head> <title>设置 HTTP 状态码</title> </head> <body> <% // 设置错误代码,并说明原因 response.sendError(407, "需要认证!!!"); %> </body> </html>
访问上述JSP页面,将会得到以下结果:
您也可以尝试使用其他的状态码,看看会不会得到意想不到的结果。