Los códigos de estado de respuesta HTTP se clasifican en 5 categorías amplias. Los códigos de estado proporcionan una manera fácil para que los clientes entiendan los resultados de sus transacciones.
Como los métodos le dicen al servidor qué hacer, Los códigos de estado se encuentran en las líneas de inicio de las respuestas. Por ejemplo, en la línea “HTTP/1.1 200 OK“, el código de estado es 200.
Cuando los clientes envían mensajes de solicitud a un servidor HTTP, pueden suceder muchas cosas. Si tienes suerte, la solicitud se completará con éxito. Puede que no siempre seas tan afortunado. El servidor puede decirte que no se pudo encontrar el recurso que solicitaste, que no tienes permiso para acceder al recurso o que el recurso se ha movido a otro lugar.
Los códigos de estado se devuelven en la línea de inicio de cada mensaje de respuesta. Se devuelven tanto un estado numérico como legible por humanos. El código numérico facilita el procesamiento de errores para los programas, mientras que la Frase explicativa es fácil de entender para los humanos.
Los diferentes códigos de estado se agrupan en clases por sus códigos numéricos de tres dígitos. Los códigos de estado entre 200 y 299 representan el éxito. Los códigos entre 300 y 399 indican que el recurso se ha movido. Los códigos entre 400 y 499 significan que el cliente hizo algo mal en la solicitud. Los códigos entre 500 y 599 significan que algo salió mal en el servidor.
Rango General | Rango definido | Categoría |
---|---|---|
100-199 | 100-101 | Informativo |
200-299 | 200-206 | Exitoso |
300-399 | 300-305 | Redirección |
400-499 | 400-415 | Error de cliente |
500-599 | 500-505 | Error del servidor |
1. 100-199: Códigos de estado informativo
HTTP/1.1 introdujo los códigos de estado informativo al protocolo. Son relativamente nuevos y están sujetos a un poco de controversia sobre su complejidad y valor percibido.
Código de estado | Frase explicativa | Significado |
---|---|---|
100 | Continue | Indica que se recibió una parte inicial de la solicitud y el cliente debe continuar. Después de enviar esto, el servidor debe responder después de recibir la solicitud. |
101 | Switching Protocol | Indica que el servidor está cambiando los protocolos, según lo especificado por el cliente, a uno que figura en el encabezado de solicitud Upgrade. |
2. 200-299: Códigos de estado de éxito
Cuando los clientes hacen solicitudes, las solicitudes generalmente son exitosas. Los servidores tienen una serie de códigos de estado para indicar el éxito, combinados con diferentes tipos de solicitudes.
Código de estado | Frase explicativa | Significado |
---|---|---|
200 | OK | La solicitud está bien, el cuerpo del mensaje contiene el recurso solicitado. |
201 | Created | Para solicitudes que crean objetos de servidor (p. Ej., PUT). El cuerpo de la entidad de la respuesta debe contener varias URL para hacer referencia al recurso creado, con el encabezado de la ubicación que contiene la referencia más específica. El servidor debe haber creado el objeto antes de enviar este código de estado. |
202 | Accepted | La solicitud fue aceptada, pero el servidor aún no ha realizado ninguna acción con ella. No hay garantías de que el servidor completará la solicitud; esto solo significa que la solicitud parecía válida cuando se aceptó. El servidor debe incluir un cuerpo de entidad con una descripción que indique el estado de la solicitud y posiblemente una estimación de cuándo se completará (o un puntero a donde se puede obtener esta información). |
203 | Non-Authoritative Information | La información contenida en los encabezados de las entidades no proviene del servidor de origen sino de una copia del recurso. Esto podría suceder si un intermediario tiene una copia de un recurso pero no puede o no valida la metainformación (encabezados) que envió sobre el recurso. Este código de respuesta no es necesario para ser utilizado; es una opción para las aplicaciones que tienen una respuesta que sería un estado de 200 si los encabezados de las entidades provinieran del servidor de origen. |
204 | No Content | El mensaje de respuesta contiene cabeceras y una línea de estado, pero ningún organismo de la entidad. Se utiliza principalmente para actualizar navegadores sin que se muevan a un nuevo documento (por ejemplo, actualizando una página de formulario). |
205 | Reset Content | Otro código principalmente para navegadores. Indica al navegador que borre cualquier elemento de formulario HTML de la página actual. |
206 | Partial Content | Una solicitud parcial o de alcance tuvo éxito. Más adelante, veremos que los clientes pueden solicitar parte o un rango de un documento utilizando encabezados especiales - este código de estado indica que la solicitud de rango fue exitosa. |
3. 300-399: Códigos de estado de redirección
Los códigos de estado de redirección indican a los clientes que utilicen ubicaciones alternativas para los recursos en los que están interesados o proporcionan una respuesta alternativa en lugar del contenido.
Si un recurso se ha movido, se puede enviar un código de estado de redireccionamiento y un encabezado Location opcional para decirle al cliente que el recurso se ha movido y dónde se puede encontrar ahora. Esto permite a los navegadores ir a la nueva ubicación de forma transparente, sin molestar a sus usuarios humanos.
Código de estado | Frase explicativa | Significado |
---|---|---|
300 | Multiple Choices | Se devuelve cuando un cliente ha solicitado una URL que realmente hace referencia a varios recursos, como un servidor que aloja una versión en español y francés de un documento HTML. Este código se devuelve junto con una lista de opciones; el usuario puede seleccionar la que desee. |
301 | Moved Permanently | Se utiliza cuando se ha movido la URL solicitada. La respuesta debe contener en el encabezado de Location la URL donde reside ahora el recurso. |
302 | Found | Al igual que el código de estado 301; sin embargo, el cliente debe utilizar la URL dada en el encabezado Location para localizar el recurso temporalmente. Las solicitudes futuras deben utilizar la URL antigua. |
303 | See Other | Se usa para decirle al cliente que el recurso debe ser obtenido usando una URL diferente. Esta nueva URL se encuentra en el encabezado Location del mensaje de respuesta. Su objetivo principal es permitir que las respuestas a las solicitudes POST dirijan al cliente a un recurso. |
304 | Not Modified | Los clientes pueden condicionar sus solicitudes por los encabezados de solicitud que incluyen. Si un cliente realiza una solicitud condicional, como un GET si el recurso no se ha cambiado recientemente, este código se utiliza para indicar que el recurso no ha cambiado. Las respuestas con este código de estado no deben contener un cuerpo de entidad. |
305 | Use Proxy | Se usa para indicar que se debe acceder al recurso a través de un proxy; la ubicación del proxy se da en el encabezado Location. Es importante que los clientes interpreten esta respuesta relativa a un recurso específico y no asuman que este proxy se debe usar para todas las solicitudes o incluso todas las solicitudes al servidor que contiene el recurso solicitado. Esto podría llevar a un comportamiento defectuoso si el proxy interfirió por error con una solicitud y presenta un agujero de seguridad. |
306 | (Unused) | No utilizado actualmente. |
307 | Temporary Redirect | Al igual que el código de estado 301; sin embargo, el cliente debe usar la URL proporcionada en el encabezado Location para ubicar el recurso temporalmente. Las solicitudes futuras deben usar la URL anterior. |
4. 400-499: Códigos de estado de error del cliente
Algunas veces un cliente envía algo que un servidor simplemente no puede manejar, como un mensaje de solicitud mal formado o, más a menudo, una solicitud de una URL que no existe. Todos hemos visto el infame código de error 404 Not Found mientras navegamos, este es solo el servidor que nos dice que hemos solicitado un recurso sobre el cual no sabe nada.
Muchos de los errores del cliente son tratados por su navegador, sin que eso lo moleste. Algunos, como el 404, aún podrían pasar.
Código de estado | Frase explicativa | Significado |
---|---|---|
400 | Bad Request | Se usa para decirle al cliente que ha enviado una solicitud mal formada. |
401 | Unauthorized | Se devuelve junto con los encabezados apropiados que solicitan al cliente autenticarse antes de que pueda obtener acceso al recurso. |
402 | Payment Required | Actualmente este código de estado no se usa, pero se ha reservado para uso futuro. |
403 | Forbidden | Se usa para indicar que el servidor rechazó la solicitud. Si el servidor quiere indicar por qué se rechazó la solicitud, puede incluir un cuerpo de entidad que describa el motivo. Sin embargo, este código generalmente se usa cuando el servidor no quiere revelar el motivo de la negativa. |
404 | Not Found | Se usa para indicar que el servidor no puede encontrar la URL solicitada. A menudo, se incluye una entidad para que la aplicación cliente se muestre al usuario. |
405 | Method Not Allowed | Se usa cuando se realiza una solicitud con un método que no es compatible con la URL solicitada. El encabezado Allow debe incluirse en la respuesta para indicar al cliente qué métodos están permitidos en el recurso solicitado. |
406 | Not Acceptable | Los clientes pueden especificar parámetros sobre qué tipos de entidades están dispuestos a aceptar. Este código se usa cuando el servidor no tiene recursos que coincidan con la URL que es aceptable para el cliente. A menudo, los servidores incluyen encabezados que permiten al cliente descubrir por qué no se puede satisfacer la solicitud. |
407 | Proxy Authentication Required | Como el código de estado 401, pero se usa para servidores proxy que requieren autenticación para un recurso. |
408 | Request Timeout | Si un cliente tarda demasiado en completar su solicitud, un servidor puede devolver este código de estado y cerrar la conexión. La duración de este tiempo de espera varía de servidor a servidor, pero generalmente es lo suficientemente larga como para satisfacer cualquier solicitud legítima. |
409 | Conflict | Se usa para indicar algún conflicto que la solicitud puede estar causando en un recurso. Los servidores pueden enviar este código cuando temen que una solicitud pueda causar un conflicto. La respuesta debe contener un cuerpo que describa el conflicto. |
410 | Gone | Similar a 404, excepto que el servidor una vez sostuvo el recurso. Se utiliza principalmente para el mantenimiento del sitio web, por lo que el administrador de un servidor puede notificar a los clientes cuando se ha eliminado un recurso. |
411 | Length Required | Se usa cuando el servidor requiere un encabezado Content-Length en el mensaje de solicitud. |
412 | Precondition Failed | Se usa si un cliente realiza una solicitud condicional y una de las condiciones falla. Las solicitudes condicionales se producen cuando un cliente incluye un encabezado Expect. |
413 | Request Entity Too Large | Se usa cuando un cliente envía un cuerpo de entidad que es más grande de lo que el servidor puede o quiere procesar. |
414 | Request URI Too Long | Se usa cuando un cliente envía una solicitud con una URL de solicitud que es más grande de lo que el servidor puede o quiere procesar. |
415 | Unsupported Media Type | Se usa cuando un cliente envía una entidad de un tipo de contenido que el servidor no comprende o no admite. |
416 | Requested Range Not Satisfiable | Se usa cuando el mensaje de solicitud solicita un rango de un recurso determinado y no es satisfactorio, el rango no es válido o no se puede cumplir. |
417 | Expectation Failed | Se usa cuando la solicitud contenía una expectativa en el encabezado de solicitud Expect que el servidor no pudo satisfacer. Un proxy u otra aplicación intermediaria puede enviar este código de respuesta si tiene evidencia inequívoca de que el servidor de origen generará una expectativa fallida para la solicitud. |
5. 500-599: Códigos de estado de error del servidor
A veces un cliente envía una solicitud válida, pero el servidor tiene un error. Esto podría ser un cliente que se ejecuta en una limitación del servidor o un error en uno de los subcomponentes del servidor, como un recurso de puerta de enlace. Los servidores proxy a menudo tienen problemas cuando intentan comunicarse con los servidores en nombre del cliente.
Código de estado | Frase explicativa | Significado |
---|---|---|
500 | Internal Server Error | Se usa cuando el servidor encuentra un error que le impide atender la solicitud. |
501 | Not Implemented | Se usa cuando un cliente realiza una solicitud que está más allá de las capacidades del servidor (por ejemplo, utilizando un método de solicitud que el servidor no admite). |
502 | Bad Gateway | Se usa cuando un servidor que actúa como proxy o puerta de enlace encuentra una respuesta falsa desde el siguiente enlace en la cadena de respuesta de la solicitud (por ejemplo, si no puede conectarse a su puerta de enlace principal). |
503 | Service Unavailable | Se usa para indicar que el servidor actualmente no puede atender la solicitud, pero podrá hacerlo en el futuro. Si el servidor sabe cuándo estará disponible el recurso, puede incluir un encabezado Retry-After en la respuesta. |
504 | Gateway Timeout | Similar al código de estado 408, excepto que la respuesta proviene de una puerta de enlace o proxy que ha agotado el tiempo de espera de una respuesta a su solicitud de otro servidor. |
505 | HTTP Version Not Supported | Se usa cuando un servidor recibe una solicitud en una versión del protocolo que no puede o no admite. Algunas aplicaciones de servidor eligen no admitir versiones anteriores del protocolo. |
¡Si te ha sudo útil esta información, no dudes en compartirla! :’)
1 comentario