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.