Los formatos de solicitudes HTTP y respuestas HTTP son similares y ambos tienen la siguiente estructura:
Comience con línea de estado + CRLF (retorno de carro y avance de línea)
Módulo de encabezado de línea cero o múltiple+CRLF
Una línea en blanco, como CRLF
Cuerpo de mensaje opcional, como archivo, datos de consulta, resultado de consulta
Por ejemplo, un encabezado de respuesta del servidor tiene este aspecto:
HTTP/1.1 200 OKTipo de contenido: texto/htmlEncabezado2: ...EncabezadoN: ... (Línea en blanco)<!doctype ...><html><head>...</head><body> ... </cuerpo></html>
La línea de estado contiene la versión HTTP, un código de estado y el mensaje corto correspondiente al código de estado.
La siguiente tabla enumera los códigos de estado HTTP y los mensajes asociados que pueden devolverse desde el servidor:
| código de estado | información | describir |
|---|---|---|
| 100 | Continuar | El servidor solo recibe una parte de la solicitud, pero mientras el servidor no la rechace, el cliente continuará con la solicitud. |
| 101 | Protocolos de conmutación | protocolo de cambio de servidor |
| 200 | DE ACUERDO | Solicitud confirmada |
| 201 | Creado | La solicitud se completa y se crea el nuevo recurso. |
| 202 | Aceptado | La solicitud fue aceptada pero no procesada. |
| 203 | Información no autorizada | |
| 204 | Sin contenido | |
| 205 | Restablecer contenido | |
| 206 | Contenido parcial | |
| 300 | Múltiples opciones | Una tabla de hipervínculos. Los usuarios pueden seleccionar un hipervínculo y acceder a él. Se admiten un máximo de 5 hipervínculos. |
| 301 | Se mudó 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 | Usar proxy | |
| 306 | No usado | Este código de estado ya no se utiliza, pero se conserva. |
| 307 | Redirección temporal | La página solicitada se ha movido temporalmente a una nueva URL |
| 400 | Solicitud incorrecta | El servidor no reconoce la solicitud. |
| 401 | No autorizado | La página solicitada requiere un nombre de usuario y contraseña. |
| 402 | Pago requerido | Este código de estado no se puede utilizar todavía |
| 403 | Prohibido | Está 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 | No aceptable | El servidor solo puede crear una respuesta que sea inaceptable para el cliente. |
| 407 | Se requiere autenticación de proxy | Se debe autenticar un servidor proxy antes de poder atender las solicitudes. |
| 408 | Solicitar tiempo de espera | El tiempo de solicitud excedió el tiempo que el servidor podía esperar y la conexión se desconectó. |
| 409 | Conflicto | Hay un conflicto en la solicitud. |
| 410 | Desaparecido | La página solicitada ya no está disponible |
| 411 | Longitud requerida | "Contenido-Longitud" no está definido, el servidor se negó a aceptar la solicitud |
| 412 | Condición previa fallida | La condición previa solicitada fue evaluada por el servidor como falsa |
| 413 | Solicitar entidad demasiado grande | El servidor se negó a aceptar la solicitud porque la entidad solicitada era demasiado grande. |
| 414 | URL de solicitud demasiado larga | El servidor se negó a aceptar la solicitud porque la URL era demasiado larga. A menudo aparece una gran cantidad de información de consulta al convertir una solicitud "POST" en una solicitud "GET". |
| 415 | Tipo de medio no admitido | El servidor se negó a aceptar la solicitud porque el tipo de medio no es compatible |
| 417 | Expectativa fallida | |
| 500 | Error Interno del Servidor | La solicitud estaba incompleta y el servidor encontró una condición inesperada. |
| 501 | No implementado | La solicitud está incompleta y el servidor no proporciona la funcionalidad requerida |
| 502 | Mala puerta de enlace | La solicitud estaba incompleta y el servidor recibió una respuesta no válida del servidor ascendente. |
| 503 | Servicio No Disponible | La solicitud está incompleta y el servidor se reinicia o se apaga temporalmente. |
| 504 | Tiempo de espera de puerta de enlace | Tiempo de espera de la puerta de enlace |
| 505 | Versión HTTP no compatible | El servidor no admite la versión HTTP especificada |
La siguiente tabla enumera los métodos utilizados para establecer códigos de estado en la clase HttpServletResponse:
| SN | Método y descripción |
|---|---|
| 1 | public void setStatus (int statusCode) Este método puede establecer cualquier código de estado. Si su respuesta contiene un código de estado especial y un documento, asegúrese de llamar al método setStatus antes de devolver algo con PrintWriter. |
| 2 | public void sendRedirect(String url) Este método genera una respuesta 302 y un encabezado de Ubicación para indicarle a la URL un nuevo documento. |
| 3 | public void sendError(int code, String message) Este método inserta automáticamente un código de estado (normalmente 404) y un mensaje corto en el documento HTML y lo envía de vuelta al cliente. |
El siguiente ejemplo enviará un código de error 407 al navegador y el navegador le indicará "¡¡¡Necesita autenticación!!!".
<html><head><title>Configuración del código de estado HTTP</title></head><body><% // Establece el código de error y explica el motivo Response.sendError(407, "¡¡¡Necesita autenticación!!!" ) ; %></cuerpo></html>
Al acceder a la página JSP anterior, obtendrá los siguientes resultados:

También puede intentar utilizar otros códigos de estado para ver si obtiene resultados inesperados.