English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A estrutura das mensagens de solicitação HTTP e de resposta HTTP é semelhante, e a estrutura é como follows:
Linha de estado inicial + Caractere de nova linha (nova linha+nova linha)
Zero ou mais linhas de cabeçalho+Caractere de nova linha
Uma linha em branco, ou seja, o caractere de nova linha.
Um corpo de mensagem opcional, como um arquivo, dados de consulta ou saída de consulta.
Por exemplo, a cabeçalho da resposta do servidor é como follows:
HTTP/1.1 200 OK Conteúdo-Type: .../html Header2: ... ... HeaderN: ... (Linha em branco) <!doctype ...> <html> <head>.../head> <body> ... </body> </html>
A linha de estado inclui a versão HTTP (no exemplo, HTTP/1.1)、um código de estado (no exemplo, 200)e uma mensagem curta correspondente ao código de estado (no exemplo, OK).
A seguir está uma lista de possíveis códigos de estado HTTP retornados por servidores da Web e as informações relacionadas:
Código | Mensagem | Descrição |
---|---|---|
100 | Continuar | Apenas parte da solicitação foi recebida pelo servidor, mas desde que não foi recusada, o cliente deve continuar a solicitação. |
101 | Mudando de Protocols | A mudança de protocolo do servidor. |
200 | OK | A solicitação foi bem-sucedida. |
201 | Criado | A solicitação está completa e cria um novo recurso. |
202 | Aceito | A solicitação foi aceita e processada, mas o processamento é incompleto. |
203 | Não-informação autoritativa | |
204 | Nenhum conteúdo | |
205 | Resetar conteúdo | |
206 | Conteúdo parcial | |
300 | Múltiplas escolhas | Lista de links. O usuário pode escolher um link para acessar o local. No máximo cinco endereços. |
301 | Movido permanentemente | A página solicitada foi movida para uma nova URL. |
302 | Encontrado | A página solicitada foi temporariamente movida para uma nova URL. |
303 | Ver outro | A página solicitada pode ser encontrada em outro URL diferente. |
304 | Não modificado | |
305 | Use proxy | |
306 | Não usado | Este código foi usado em versões anteriores. Agora não é mais usado, mas o código ainda é mantido. |
307 | Redirecionamento temporário | A página solicitada foi temporariamente movida para uma nova URL. |
400 | Solicitação ruim | O servidor não entende a solicitação. |
401 | Não autorizado | A página solicitada requer nome de usuário e senha. |
402 | Pagamento necessário | Você ainda não pode usar este código. |
403 | Proibido | Acesso à página solicitada é proibido. |
404 | Não encontrado | O servidor não pode encontrar a página solicitada. |
405 | Método não permitido | O método especificado na solicitação não é permitido. |
406 | Não aceitável | O servidor gera apenas uma resposta que não é aceitável pelo cliente. |
407 | Autenticação do proxy necessária | Antes de entregar a solicitação, você deve usar a autenticação do servidor proxy. |
408 | Timeout da solicitação | O tempo necessário para a solicitação é maior do que o tempo que o servidor pode esperar, timeout. |
409 | Conflito | A solicitação não pôde ser concluída devido a conflitos. |
410 | Sumido | A página solicitada não está mais disponível. |
411 | Comprimento requerido | "Content"-"Comprimento" não definido. O servidor não pode processar solicitações do cliente sem "Content"-Informação de comprimento |
412 | Condição prévia falhou | As condições prévias fornecidas na solicitação foram avaliadas pelo servidor como falsas. |
413 | Corpo da solicitação muito grande | O servidor não aceita a solicitação, pois o corpo da solicitação é muito grande. |
414 | Solicitação-URL muito longa | O servidor não aceita a solicitação, pois a URL é muito longa. Isso ocorre quando você converte uma solicitação "post" em uma solicitação "get" com informações de consulta longas. |
415 | Tipo de mídia não suportado | The server does not accept the request because the media type is not supported. |
417 | Expectation Failed | |
500 | Internal Server Error | Incomplete request. The server encountered an unexpected situation. |
501 | Not Implemented | Incomplete request. The server does not support the required functionality. |
502 | Bad Gateway | Incomplete request. The server received an invalid response from the upstream server. |
503 | Service Unavailable | Incomplete request. The server is temporarily overloaded or has crashed. |
504 | Service Unavailable | Gateway Timeout |
505 | HTTP Version Not Supported | The server does not support the "HTTP protocol" version. |
The following methods can be used to set HTTP status codes in Servlet programs. These methods are set through HttpServletResponse Object available.
Number | Method & Description |
---|---|
1 | public void setStatus ( int statusCode ) This method sets an arbitrary status code. The setStatus method accepts an int (status code) as a parameter. If your response contains a special status code and document, make sure to use PrintWriter call setStatus before returning any content actually. |
2 | public void sendRedirect(String url) This method generates a 302 response, along with a new document URL Location header. |
3 | public void sendError(int code, String message) This method sends a status code (usually 404),along with a short message automatically formatted and sent to the client within the HTML document. |
The following example takes 407 Error codes are sent to the client browser, and the browser will display the message "Need authentication!!!".
// Import the necessary java libraries import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import javax.servlet.annotation.WebServlet; @WebServlet("/showError()) // Extend the HttpServlet class public class showError extends HttpServlet { // Método para lidar com solicitações de método GET public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Definir código de erro e motivo response.sendError(407, "Necessário autenticação!!!" ); } // Método para lidar com solicitações de método POST public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
Agora, ao chamar o Servlet acima, será exibido o seguinte resultado:
Status HTTP 407 - Necessário autenticação!!!type Relatório de Status message Necessário autenticação!!! description O cliente deve se autenticar primeiro com o proxy (Necessário autenticação!!!). Apache Tomcat/5.5.29 |