English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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ódigo | Mensaje | Descripción |
---|---|---|
100 | Continuar | Só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. |
101 | Cambiando Protocolos | El servidor cambia de protocolo. |
200 | OK | La solicitud fue exitosa. |
201 | Creado | La solicitud es completa y crea un nuevo recurso. |
202 | Aceptado | La solicitud se ha aceptado y procesado, pero el procesamiento es incompleto. |
203 | No-información autoritativa | |
204 | Sin contenido | |
205 | Reiniciar contenido | |
206 | Contenido parcial | |
300 | Múltiples opciones | Lista de enlaces. El usuario puede elegir un enlace para ingresar a ese lugar. Máximo cinco direcciones. |
301 | Transferido permanentemente | La página solicitada se ha transferido a una nueva URL. |
302 | Encontrado | La página solicitada se ha transferido temporalmente a una nueva URL. |
303 | Ver otra | La página solicitada se puede encontrar en otra URL diferente. |
304 | No modificado | |
305 | Usar proxy | |
306 | No utilizado | Se usó este código en versiones anteriores. Ahora ya no se usa, pero el código sigue siendo conservado. |
307 | Redirección temporal | La página solicitada se ha transferido temporalmente a una nueva URL. |
400 | Solicitud incorrecta | El servidor no entiende la solicitud. |
401 | No autorizado | La página solicitada requiere nombre de usuario y contraseña. |
402 | Se requiere pago | Aún no puedes usar este código. |
403 | Prohibido | Acceso prohibido a la página solicitada. |
404 | No encontrado | 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 genera una respuesta que no es aceptada por el cliente. |
407 | Autenticación del proxy requerida | Antes de que la solicitud sea entregada, debe usar la autenticación del servidor proxy. |
408 | Tiempo de espera de solicitud | La solicitud requiere más tiempo del que el servidor puede esperar, se ha producido un tiempo de espera excedido. |
409 | Conflicto | La solicitud no se pudo completar debido a un conflicto. |
410 | Desaparecido | La página solicitada ya no está disponible. |
411 | Longitud requerida | "Contenido"-"Longitud" no está definida. El servidor no puede procesar la solicitud del cliente sin contenido.-Información de longitud |
412 | Condiciones previas fallidas | Las condiciones previas proporcionadas en la solicitud se evaluaron como falsas por el servidor. |
413 | Entidad de solicitud demasiado grande | El servidor no acepta la solicitud porque la entidad de la solicitud es demasiado grande. |
414 | Solicitud-URL demasiado larga | El 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. |
415 | Tipo de medio no soportado | The server does not accept the request because the media type is not supported. |
417 | Expectation Failed | |
500 | Internal Server Error | Incomplete request. The server encountered an unexpected situation. |
501 | Not Implemented | Incomplete request. The server does not support the required functionality. |
502 | Bad Gateway | Incomplete request. The server received an invalid response from the upstream server. |
503 | Service Unavailable | Incomplete request. The server is temporarily overloaded or crashed. |
504 | Service Unavailable | Gateway Timeout |
505 | HTTP Version Not Supported | The server does not support the "HTTP protocol" version. |
The following methods can be used to set HTTP status codes in Servlet programs. These methods are set through HttpServletResponse Object available.
Serial number | Method & Description |
---|---|
1 | public 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. |
2 | public void sendRedirect(String url) This method generates a 302 response, along with a new document URL Location header. |
3 | public 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. |
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 |