JSP - Códigos de status Http
Neste capítulo, discutiremos os códigos de status Http em JSP. O formato da solicitação HTTP e as mensagens de resposta HTTP são semelhantes e terão a seguinte estrutura -
Uma linha de status inicial + CRLF (retorno de carro + alimentação de linha, ou seja, nova linha)
Zero ou mais linhas de cabeçalho + CRLF
Uma linha em branco, ou seja. um CRLF
Um corpo de mensagem opcional como arquivo, dados de consulta ou saída de consulta.
Por exemplo, um cabeçalho de resposta do servidor se parece com o seguinte -
HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
(Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>
A linha de status consiste no HTTP version (HTTP/1.1 in the example), um código de status (200 no exemplo) e uma mensagem muito curta correspondente ao código de status (OK in the example).
A tabela a seguir lista os códigos de status HTTP e as mensagens associadas que podem ser retornadas do servidor da Web -
Código | mensagem | Descrição |
---|---|---|
100 | Continuar | Apenas uma parte da solicitação foi recebida pelo servidor, mas desde que não tenha sido rejeitada, o cliente deve continuar com a solicitação |
101 | Protocolos de troca | O servidor muda de protocolo. |
200 | Está bem | O pedido está OK |
201 | Criada | A solicitação está concluída e um novo recurso é criado |
202 | Aceitaram | A solicitação foi aceita para processamento, mas o processamento não foi concluído. |
203 | Informação não oficial | |
204 | Sem conteúdo | |
205 | Redefinir conteúdo | |
206 | Conteúdo Parcial | |
300 | Escolhas múltiplas | Uma lista de links; o usuário pode selecionar um link e ir para aquele local. Máximo de cinco endereços. |
301 | Movido Permanentemente | A página solicitada foi movida para um novo url. |
302 | Encontrado | A página solicitada foi movida temporariamente para um novo url. |
303 | Veja outro | A página solicitada pode ser encontrada em um URL diferente. |
304 | Não modificado | |
305 | Use Proxy | |
306 | Não utilizado | Este código foi usado em uma versão anterior. Não é mais usado, mas o código está reservado. |
307 | Redirecionamento temporário | A página solicitada foi movida temporariamente para um novo url. |
400 | Pedido ruim | O servidor não entendeu a solicitação. |
401 | Não autorizado | A página solicitada precisa de um nome de usuário e uma senha. |
402 | Pagamento Requerido | Você não pode usar este código ainda. |
403 | Proibido | O acesso é proibido à página solicitada |
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 só pode gerar uma resposta que não seja aceita pelo cliente. |
407 | Autenticação de proxy necessária | Você deve se autenticar com um servidor proxy antes que esta solicitação possa ser atendida. |
408 | Solicitar tempo limite | A solicitação demorou mais do que o servidor estava preparado para aguardar. |
409 | Conflito | A solicitação não pôde ser concluída devido a um conflito. |
410 | Se foi | A página solicitada não está mais disponível. |
411 | Comprimento Requerido | O "Content-Length" não está definido. O servidor não aceitará a solicitação sem ele. |
412 | A pré-condição falhou | A pré-condição fornecida na solicitação avaliada como falsa pelo servidor. |
413 | Solicitar Entidade Muito Grande | O servidor não aceitará a solicitação porque a entidade da solicitação é muito grande. |
414 | Request-url muito longo | O servidor não aceitará a solicitação porque o url é muito longo. Isso ocorre quando você converte uma solicitação "post" em uma solicitação "get" com uma longa informação de consulta. |
415 | Tipo de mídia não suportado | O servidor não aceitará a solicitação porque o tipo de mídia não é compatível. |
417 | A expectativa falhou | |
500 | Erro do Servidor Interno | O pedido não foi concluído. O servidor encontrou uma condição inesperada. |
501 | Não implementado | O pedido não foi concluído. O servidor não oferece suporte à funcionalidade necessária. |
502 | Gateway ruim | O pedido não foi concluído. O servidor recebeu uma resposta inválida do servidor upstream. |
503 | Serviço indisponível | O pedido não foi concluído. O servidor está temporariamente sobrecarregado ou inativo. |
504 | Tempo limite do gateway | O gateway atingiu o tempo limite. |
505 | Versão HTTP não suportada | O servidor não suporta o "http protocol" versão. |
Métodos para definir o código de status HTTP
Os métodos a seguir podem ser usados para definir o Código de status HTTP em seu programa de servlet. Esses métodos estão disponíveis com o objeto HttpServletResponse .
S.No. | Método e Descrição |
---|---|
1 | public void setStatus ( int statusCode ) Este método define um código de status arbitrário. O método setStatus aceita um int (o código de status) como argumento. Se sua resposta incluir um código de status especial e um documento, certifique-se de ligarsetStatusantes de realmente retornar qualquer conteúdo com o PrintWriter . |
2 | public void sendRedirect(String url) Este método gera uma resposta 302 junto com um cabeçalho Location fornecendo a URL do novo documento. |
3 | public void sendError(int code, String message) Este método envia um código de status (geralmente 404) junto com uma mensagem curta que é formatada automaticamente dentro de um documento HTML e enviada ao cliente. |
Exemplo de código de status HTTP
O exemplo a seguir mostra como um código de erro 407 é enviado ao navegador do cliente. Depois disso, o navegador mostraria "Need authentication!!!" mensagem.
<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
// Set error code and reason.
response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>
Você receberá a seguinte saída -
HTTP Status 407 - Need authentication!!!
type Status report
message Need authentication!!!
description The client must first authenticate itself with the proxy (Need authentication!!!).
Apache Tomcat/5.5.29
Para se familiarizar com os códigos de status HTTP, tente definir códigos de status diferentes e suas descrições.