JSP - Códigos de estado Http

En este capítulo, discutiremos los códigos de estado Http en JSP. El formato de la solicitud HTTP y los mensajes de respuesta HTTP son similares y tendrán la siguiente estructura:

  • Una línea de estado inicial + CRLF (retorno de carro + salto de línea, es decir, nueva línea)

  • Cero o más líneas de encabezado + CRLF

  • Una línea en blanco, es decir. un CRLF

  • Un cuerpo de mensaje opcional como archivo, datos de consulta o salida de consulta.

Por ejemplo, un encabezado de respuesta del servidor se parece a lo siguiente:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
   (Blank Line)
<!doctype ...>

<html>
   <head>...</head>
   
   <body>
      ...
   </body>
</html>

La línea de estado consta de HTTP version (HTTP/1.1 in the example), un código de estado (200 en el ejemplo) y un mensaje muy corto correspondiente al código de estado (OK in the example).

La siguiente tabla enumera los códigos de estado HTTP y los mensajes asociados que pueden devolverse desde el servidor web:

Código Mensaje Descripción
100 Seguir El servidor solo ha recibido una parte de la solicitud, pero mientras no haya sido rechazada, el cliente debe continuar con la solicitud.
101 Protocolos de conmutación El servidor cambia de protocolo.
200 Okay La solicitud está bien
201 Creado La solicitud está completa y se crea un nuevo recurso 
202 Aceptado La solicitud se acepta para su procesamiento, pero el procesamiento no está completo.
203 Información no autorizada
204 Sin contenido
205 Restablecer contenido
206 Contenido parcial
300 Múltiples opciones Una lista de enlaces; el usuario puede seleccionar un enlace e ir a esa ubicación. Máximo cinco direcciones.
301 Movido permanentemente La página solicitada se ha movido a una nueva URL.
302 Encontró La página solicitada se ha movido temporalmente a una nueva URL.
303 Ver otros La página solicitada se puede encontrar en una URL diferente.
304 No modificado
305 Usa proxy
306 No usado Este código se utilizó en una versión anterior. Ya no se usa, pero el código está reservado.
307 Redireccionamiento temporal La página solicitada se ha movido temporalmente a una nueva URL.
400 Solicitud incorrecta El servidor no entendió la solicitud.
401 No autorizado La página solicitada necesita un nombre de usuario y una contraseña.
402 pago requerido Aún no puedes usar este código.
403 Prohibido Prohibido el acceso a la página solicitada
404 Extraviado El servidor no puede encontrar la página solicitada.
405 Método no permitido El método especificado en la solicitud no está permitido.
406 Inaceptable El servidor solo puede generar una respuesta que no es aceptada por el cliente.
407 Se requiere autenticación proxy Debe autenticarse con un servidor proxy antes de que se pueda atender esta solicitud.
408 Pide tiempo fuera La solicitud tardó más de lo que el servidor estaba preparado para esperar.
409 Conflicto La solicitud no se pudo completar debido a un conflicto.
410 Ido La página solicitada ya no está disponible.
411 Longitud requerida La "Longitud del contenido" no está definida. El servidor no aceptará la solicitud sin ella.
412 Condición previa Falló La condición previa dada en la solicitud evaluada como falsa por el servidor.
413 Solicitar entidad demasiado grande El servidor no aceptará la solicitud porque la entidad de la solicitud es demasiado grande.
414 URL de solicitud demasiado larga El servidor no aceptará la solicitud porque la URL es demasiado larga. Esto ocurre cuando convierte una solicitud "publicar" en una solicitud "obtener" con una información de consulta larga.
415 Tipo de papel no admitido El servidor no aceptará la solicitud porque el tipo de medio no es compatible.
417 Expectativa fallida
500 error de servidor interno La solicitud no se completó. El servidor se encontró con una condición inesperada.
501 No se ha implementado La solicitud no se completó. El servidor no admitía la funcionalidad requerida.
502 Puerta de enlace incorrecta La solicitud no se completó. El servidor recibió una respuesta no válida del servidor ascendente.
503 Servicio no disponible La solicitud no se completó. El servidor se está sobrecargando o cayendo temporalmente.
504 Tiempo de espera de puerta de enlace La puerta de enlace ha agotado el tiempo de espera.
505 Versión HTTP no admitida El servidor no es compatible con "http protocol" versión.

Métodos para establecer el código de estado HTTP

Los siguientes métodos se pueden utilizar para configurar el código de estado HTTP en su programa de servlet. Estos métodos están disponibles con el objeto HttpServletResponse .

S.No. Método y descripción
1

public void setStatus ( int statusCode )

Este método establece un código de estado arbitrario. El método setStatus toma un int (el código de estado) como argumento. Si su respuesta incluye un código de estado especial y un documento, asegúrese de llamarsetStatusantes de devolver el contenido con PrintWriter .

2

public void sendRedirect(String url)

Este método genera una respuesta 302 junto con un encabezado de ubicación que proporciona la URL del nuevo documento.

3

public void sendError(int code, String message)

Este método envía un código de estado (generalmente 404) junto con un mensaje corto que se formatea automáticamente dentro de un documento HTML y se envía al cliente.

Ejemplo de código de estado HTTP

El siguiente ejemplo muestra cómo se envía un código de error 407 al navegador del cliente. Después de esto, el navegador le mostrará "Need authentication!!!"mensaje.

<html>
   <head>
      <title>Setting HTTP Status Code</title>
   </head>
   
   <body>
      <%
         // Set error code and reason.
         response.sendError(407, "Need authentication!!!" );
      %>
   </body>
</html>

Recibirá el siguiente resultado:

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 sentirse más cómodo con los códigos de estado HTTP, intente establecer diferentes códigos de estado y su descripción.