English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Códigos de estado HTTP de Servlet

El formato de las solicitudes HTTP y las respuestas HTTP es similar, y tiene la siguiente estructura:

  • Línea de estado inicial + retorno de carro y salto de línea (retorno+salto de línea)

  • Cero o más líneas de encabezado+retorno de carro y salto de línea

  • Una línea en blanco, es decir, retorno de carro y salto de línea.

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

Por ejemplo, la respuesta de la cabecera del servidor se muestra a continuación:

HTTP/1.1 200 OK
Contenido-Tipo: .../html
Encabezado2: ...
...
HeaderN: ...
  (Línea en blanco)
<!doctype ...>
<html>
<head>.../head>
<body>
...
</body>
</html>

La línea de estado incluye la versión de HTTP (en este ejemplo, HTTP/1.1)、un código de estado (en este ejemplo, 200)y un mensaje corto correspondiente al código de estado (en este ejemplo, OK).

A continuación, se muestra una lista de los códigos de estado HTTP posibles que pueden devolver los servidores web y la información relacionada:

CódigoMensajeDescripción
100ContinuarSólo una parte de la solicitud ha sido recibida por el servidor, pero el cliente debe continuar con la solicitud siempre que no sea rechazada.
101Cambiando ProtocolosEl servidor cambia de protocolo.
200OKLa solicitud fue exitosa.
201CreadoLa solicitud es completa y crea un nuevo recurso.
202AceptadoLa solicitud se ha aceptado y procesado, pero el procesamiento es incompleto.
203No-información autoritativa 
204Sin contenido 
205Reiniciar contenido 
206Contenido parcial 
300Múltiples opcionesLista de enlaces. El usuario puede elegir un enlace para ingresar a ese lugar. Máximo cinco direcciones.
301Transferido permanentementeLa página solicitada se ha transferido a una nueva URL.
302EncontradoLa página solicitada se ha transferido temporalmente a una nueva URL.
303Ver otraLa página solicitada se puede encontrar en otra URL diferente.
304No modificado 
305Usar proxy 
306No utilizadoSe usó este código en versiones anteriores. Ahora ya no se usa, pero el código sigue siendo conservado.
307Redirección temporalLa página solicitada se ha transferido temporalmente a una nueva URL.
400Solicitud incorrectaEl servidor no entiende la solicitud.
401No autorizadoLa página solicitada requiere nombre de usuario y contraseña.
402Se requiere pagoAún no puedes usar este código.
403ProhibidoAcceso prohibido a la página solicitada.
404No encontradoEl servidor no puede encontrar la página solicitada.
405Método no permitidoEl método especificado en la solicitud no está permitido.
406No aceptableEl servidor solo genera una respuesta que no es aceptada por el cliente.
407Autenticación del proxy requeridaAntes de que la solicitud sea entregada, debe usar la autenticación del servidor proxy.
408Tiempo de espera de solicitudLa solicitud requiere más tiempo del que el servidor puede esperar, se ha producido un tiempo de espera excedido.
409ConflictoLa solicitud no se pudo completar debido a un conflicto.
410DesaparecidoLa página solicitada ya no está disponible.
411Longitud requerida"Contenido"-"Longitud" no está definida. El servidor no puede procesar la solicitud del cliente sin contenido.-Información de longitud
412Condiciones previas fallidasLas condiciones previas proporcionadas en la solicitud se evaluaron como falsas por el servidor.
413Entidad de solicitud demasiado grandeEl servidor no acepta la solicitud porque la entidad de la solicitud es demasiado grande.
414Solicitud-URL demasiado largaEl servidor no acepta la solicitud porque la URL es demasiado larga. Esto ocurre cuando se convierte una solicitud "post" en una solicitud "get" con información de consulta larga.
415Tipo de medio no soportadoThe server does not accept the request because the media type is not supported.
417Expectation Failed 
500Internal Server ErrorIncomplete request. The server encountered an unexpected situation.
501Not ImplementedIncomplete request. The server does not support the required functionality.
502Bad GatewayIncomplete request. The server received an invalid response from the upstream server.
503Service UnavailableIncomplete request. The server is temporarily overloaded or crashed.
504Service UnavailableGateway Timeout
505HTTP Version Not SupportedThe server does not support the "HTTP protocol" version.

Methods to set HTTP status codes

The following methods can be used to set HTTP status codes in Servlet programs. These methods are set through HttpServletResponse Object available.

Serial numberMethod & Description
1public void setStatus ( int statusCode )
This method sets an arbitrary status code. The setStatus method accepts an int (status code) as a parameter. If your response contains a special status code and document, make sure to use PrintWriter call setStatus before returning any content actually.
2public void sendRedirect(String url)
This method generates a 302 response, along with a new document URL Location header.
3public void sendError(int code, String message)
This method sends a status code (usually 404),along with a short message automatically formatted and sent to the client within the HTML document.

HTTP status code examples

The following example takes 407 Error codes are sent to the client browser, and the browser will display the message "Need authentication!!!".

// Import the necessary java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import javax.servlet.annotation.WebServlet;
@WebServlet("/showError())
// Expand the HttpServlet class
public class showError extends HttpServlet {}}
 
  // Método para manejar solicitudes de método GET
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            lanza ServletException, IOException
  {
      // Configurar código de error y razón
      response.sendError(407, "¡Necesita autenticación!!!" );
  }
  // Método para manejar solicitudes de método POST
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      lanza ServletException, IOException {
     doGet(request, response);
  }
}

Ahora, al llamar al Servlet superior, se mostrará el siguiente resultado:

Estado HTTP 407 - ¡Necesita autenticación!!!

type Informe de estado

message ¡Necesita autenticación!!!

description El cliente debe autenticarse primero con el proxy (¡Necesita autenticación!!!).

Apache Tomcat/5.5.29