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.