De seguro en alguna ocasión le ha ocurrido que cuando intenta acceder a una página web esta le muestra un mensaje de error. Esto puede ocurrir bastante a menudo, y puede tener varios significados asociados. El protocolo HTTP es el encargado de la comunicación mediante archivos HTML, XHTML u otros en la World Wide Web.
Este protocolo tiene implementado mostrar información al usuario acerca de estado o respuesta de la petición realizada. Existen muchos estados posibles y cada uno tiene su código con un mensaje específico asociado. En el siguiente artículo les brindamos una lista de los códigos de estados HTTP y que significan. Te invito a que continúes leyendo, ya comenzamos.
Tabla de contenidos
- Que es HTTP
- ¿Qué son los códigos de estados HTTP?
- Códigos de estados HTTP 1XX: Respuestas informativas
- Códigos de estados HTTP 2XX: Peticiones correctas
- Códigos de estados HTTP 3XX: Redirecciones
- Códigos de estados HTTP 4xx: Errores del cliente
- Código 400 Bad Request
- Código 401 Unauthorized
- Código 402 Payment Required
- Código 403 Forbidden
- Código 404 Not Found
- Código 405 Method Not Allowed
- Código 406 Not Acceptable
- Código 407 Proxy Authentication Required
- Código 408 Request Timeout
- Código 409 Conflict
- Código 410 Gone
- Código 411 Length Required
- Código 412 Precondition Failed
- Código 413 Request Entity Too Large
- Código 414 Request-URI Too Long
- Código 415 Unsupported Media Type
- Código 416 Requested Range Not Satisfiable
- Código 417 Expectation Failed
- Código 422 Unprocessable Entity
- Código 423 Locked
- Código 429 Too Many Requests
- Código 451 Unavailable for Legal Reasons
- Códigos de estados HTTP 5xx: Errores del servidor
- Artículos relacionados que te podrían resultar interesantes:
Que es HTTP
Antes que nada, hagamos una breve explicación de qué es HTTP. Como ya mencionábamos, HTTP es un protocolo que se utiliza en la World Wide Web como protocolo para la transferencia y comunicación de archivos HTML y derivados.
El protocolo HTTP establece cual es la semántica y la sintaxis que deben utilizar los elementos los softwares de la arquitectura web para comunicarse entre sí. HTTP es un protocolo de transacciones, con una arquitectura cliente servidor, donde el cliente realiza una petición y el servidor envía una respuesta.
¿Qué son los códigos de estados HTTP?
Los códigos de estados HTTP son respuestas enviada por el protocolo HTTP informando acerca del estado de la petición actual realizada. Existen cinco clases específicas de códigos de estado. En cada mensaje, el primer número del código hace referencia al tipo de respuesta ofrecida. Las descripciones del código se utilizan para informar al usuario de la manera más intuitiva posible.
Los tipos de respuestas establecidos están categorizadas como respuestas informativas, peticiones correctas, redirecciones, errores asociados al cliente y errores asociados al servidor.
Códigos de estados HTTP 1XX: Respuestas informativas
Entre los mensajes obtenidos con este tipo de código podemos encontrar «Petición recibida» y «continuando proceso». Este tipo de códigos se utilizan para mejorar en eficiencia durante la comunicación. En algunos casos, como la transferencia HTML, el cuerpo del mensaje es demasiado largo y no es eficiente enviarlo completamente para ver si es aceptado.
En estos casos se envía solo la cabecera del mensaje con una solicitud “Expect : 100-continue”. De esta forma comunica al servidor si este puede aceptar la comunicación. En caso de que el servidor devuelve un estado «100 Continue» se envía el resto del mensaje. En caso de recibir «417 Expectation Failed» no se continúa con la comunicación.
Código 100 Continue
Este código indica que el navegador web puede continuar realizando la petición. De esta manera se informa al cliente de que la primera parte de la petición fue recibida correctamente.
Código 101 Switching Protocols
Este se usa para indicar si el servidor ha aceptado un cambio del protocolo utilizado. Es posible en ocasiones que se requiera cambiar entre protocolo como HTTP 1.0 y HTTP 1.1. De esta manera el cliente conoce si el servidor acepta el cambio.
Código 102 Processing
Este informa al cliente de que la petición realizada está aún en proceso. Ocurre cuando hay largos tiempos de demora, pero la transacción no ha sido cancelada aún. De esta manera el cliente sabes que se está procesando su petición y que no ha sido denegada.
Código 103 Checkpoint
Indica que una petición de tipo POST o PUT que ha sido cancelada será nuevamente reanudada.
Códigos de estados HTTP 2XX: Peticiones correctas
Con estos códigos se indica que la petición ha sido Recibida correctamente. También indican que la misma se ha entendido y aceptado por parte del servidor. A modo de curiosidad, en el argot de la comunidad de las tecnologías informáticas, se usa “ok2xx” para indicar que una tarea se ha ejecutado exitosamente y se va a iniciar otra.
Código 200 OK
Esta es la respuesta estándar indicando que una petición es correcta.
Código 201 Created
Se indica que se ha creado un nuevo recurso a partir del procesado completo de la petición.
Código 202 Accepted
Este código indica que una petición se ha aceptado a ser procesada pero que el procesamiento no se ha completado. Puede ocurrir que cuando se procese la petición esta no se permita o procese, teniendo como consecuencia que la petición no sea satisfecha.
Código 203 Non-Authoritative Information
Este código se incluyó desde la versión HTTP 1.1. Este informa de que una petición ha sido completada pero los recursos utilizados fueron extraídos de otro servidor, y no del servidor al que se le realizó la petición.
Código 204 No Content
La respuesta emitida a raíz de una petición no tiene ningún contenido. No obstante, puede tener contenido en la cabecera HTTP.
Código 205 Reset Content
Este también indica que la respuesta a una petición no tiene contenido algunos. Pero, además el cliente debe reiniciar la página desde donde fue realizada la petición. Es usado, por ejemplo, en formularios web donde es necesario limpiarlos una vez que se envía la información.
Código 206 Partial Content
Este código indica que se enviará parte del contenido en la petición, y no el contenido completo. Es usada en gestores de descargas que dividen una descarga en diferentes partes, entre otros.
Código 207 Multi-Status
Indica que le cuerpo del mensaje está formado por un XML. Este puede contener números de códigos de respuestas separados en dependencia de la cantidad de sub-peticiones han sido realizadas.
Código 208 Already Reported
Informa que el listado de elementos DAV ha sido notificado previamente y esta notificación no se volverá a realizar.
Códigos de estados HTTP 3XX: Redirecciones
Estos tipos de códigos indican que es necesario ejecutar una acción extra por el cliente para completar la petición. Estas acciones pueden ser realizadas por al agente de usuario sin requerir una interacción con el usuario. También es obligatorio que el método de la acción extra sea GET o HEAD. No se debe redireccionar de manera automática una petición más de cinco veces. Este comportamiento puede degenerar en un bucle infinito de ejecuciones.
Código 300 Multiple Choices
Este indica que el cliente puede elegir entre múltiples opciones para el identificador de recursos uniformes URI. Es muy usado para mostrar diferentes variantes de un mismo objeto. Por ejemplo, varios formatos para ficheros de video o fotos.
Código 301 Moved Permanently
Indica una URL que servirá como destino a todas las peticiones futuras realizadas, incluyendo la actual.
Código 302 Found
Este código es dentro de la clase de redireccionamiento el más popular, aunque una contradicción con el propio estándar. Este código fue implementado por los navegadores como el código 303. Esto trae como consecuencia que la gran parte de aplicaciones web utilicen el código 302 como si fuera un código de estado HTTP 303.
Código 303 See Other
Implementado desde la versión HTTP 1.1. Indica que la respuesta de la petición se encuentra en otra URI y a está se puede acceder mediante el método GET.
Código 304 Not Modified
No se modificó la petición URL desde la última vez que se hizo. Este mecanismo permite ahorrar ancho de banda y evitar el reprocesamiento por parte del servidor y el cliente.
Código 305 Use Proxy
Introducido con la versión HTTP 1.1. Algunos navegadores como Mozilla no siguen el estándar al procesar este código de estado. Esto se realiza principalmente por temas de seguridad.
Código 306 Switch Proxy
No se emplea en las versiones actuales HTTP.
Código 307 Temporary Redirect
La petición ha sido redireccionada a otra URI, pero la URI actual aún puede procesar la petición.
Código 308 Permanent Redirect
Este indica que el recurso solicitado ha sido movido hacia otro lugar. Este cambio es permanente y no se permite cambiar el método de acceso para la nueva petición.
Códigos de estados HTTP 4xx: Errores del cliente
Estos tipos de códigos de estado se utilizan para indicar al cliente de que ha hecho algo mal en la petición. Obviando peticiones HEAD, el servidor debe enviar un mensaje con una explicación a la situación del error. Además, son los códigos de estados HTTP asociados a errores más comunes.
Código 400 Bad Request
Indica que la petición contiene sintaxis incorrecta. El servidor no la procesará, ya sea porque no puede o porque no debe por temas de seguridad u otros.
Código 401 Unauthorized
Es usado cuando el proceso de autenticación es posible, pero falló o no es posible manejarlo en ese momento.
Código 402 Payment Required
No es usado.
Código 403 Forbidden
Se lanza cuando una solicitud es realizada por un cliente que no tiene los privilegios para realizarla.
Código 404 Not Found
Informa de que no ha encontrado un recurso. Es empleado cuando el servidor web no encuentra una página o recurso requerido.
Código 405 Method Not Allowed
Error encontrado cuando una petición se realiza sobre una URI con un método que está URI no soporta.
Código 406 Not Acceptable
El cliente no cuenta con un formato que asimile la devolución de datos por parte del servidor.
Código 407 Proxy Authentication Required
Se emite cuando el servidor necesita un Proxy para la autenticación.
Código 408 Request Timeout
Indica que el cliente falló durante el proceso de continuación de la petición.
Código 409 Conflict
Hay algún conflicto en un recurso y la petición no puede ser procesada.
Código 410 Gone
Indica que un recurso no está y no estará disponible nuevamente. Generalmente se emplea cuando un servidor elimina un recurso permanentemente.
Código 411 Length Required
En la petición del cliente no se incluye la cabecera Content-Length adecuada, por esto el servidor rechaza la petición.
Código 412 Precondition Failed
Se emite cuando el servidor es incapaz de cumplir con algunas de las restricciones impuestas por el navegador.
Código 413 Request Entity Too Large
El servidor no procesa la petición ya que esta es demasiado grande.
Código 414 Request-URI Too Long
La URI de la petición es demasiado grande. A consecuencia, el servidor no es capaz de procesarla. Ese tipo de error es bastante poco común, y tiene que ver con el uso erróneo en el método de acceso.
Código 415 Unsupported Media Type
Ocurre cuando la petición del navegador no es entendida por el servidor debido a su formato.
Código 416 Requested Range Not Satisfiable
Se responde este código cuando el cliente pregunta por una parte de un archivo que no puede ser proporcionada por el servidor.
Código 417 Expectation Failed
El servidor no puede cumplir con los requerimientos contenidos en la cabecera Expect de la petición.
Código 422 Unprocessable Entity
Existen errores semánticos que imposibilitan procesar la petición.
Código 423 Locked
Recurso bloqueado.
Código 429 Too Many Requests
Existen muchas peticiones desde esta localización de red.
Código 451 Unavailable for Legal Reasons
El contiendo de este recurso no puede ser visualizado por indicación legal.
Códigos de estados HTTP 5xx: Errores del servidor
Estos códigos de estado HTTP indican cuando el servidor es incapaz de ejecutar una petición.
500 Internal Server Error
Es bastante común en aplicaciones web encargadas de generar contenido dinámicamente. Se lanza cuando se encuentran errores que son totalmente ajenos al servidor.
Código 501 Not Implemented
Emitido cuando el servidor no soporta una función que permita responder al cliente. Por ejemplo, pude ser un método de acceso que no tiene implementado el servidor.
Código 502 Bad Gateway
Es de los más comunes. En este caso el servidor actúa como Proxy o Gateway. En una petición realizada a otro servidor este ha emitido una respuesta inválida.
Código 503 Service Unavailable
No hay respuesta del servidor ya que este está demasiado ocupado.
Código 504 Gateway Timeout
Ocurre cuando el servidor está actuando como Proxy o Gateway y se excede el tiempo de respuesta de una petición a otro servidor.
Código 505 HTTP Version Not Supported
El servidor no soporta la versión HTTP solicitada por el navegador.
Código 507 Insufficient Storage
No hay suficiente espacio de almacenamiento para modificar el recurso solicitado.
Código 508 Loop Detected
Se detecta un bucle infinito al procesar la petición.
Código 509 Bandwidth Limit Exceeded
Se ha excedido el límite de ancho de banda
Código 511 Network Authentication Required
En este caso el navegador debe estar autenticado para poder navegar por la web. Los portales cautivos y otros software de autenticación usan este código.