Códigos de Estatus HTTP [Gato-Códigos][LRF2]



Bienvenidos Identikeros...

En esta ocasión les traigo un mini tutorial de comedia para que aprendan que significan los códigos que de vez en cuando nos arroja nuestro navegador, con gatos...

Agradecimientos a @girlie_mac que fue la creadora de las imágenes...




Gato-Códigos de Estatus HTTP







Ok, vayamos al grano, muchos hemos visto esos errores que nos da nuestro navegador cuando intentamos abrir una página y esta no abre, vemos un código de error y bla, bla, bla, normalmente esto desaparece actualizando la página, pero muchos no sabemos que significan estos errores, así que aprendamos...

Empecemos aclarando ¿que significa HTTP?

HTTP es la abreviatura de Hypertext Transfer Protocol (ingles para Protocolo de Transferencia de Hypertexto).  HTTP es el protocolo usado en cada transacción de la World Wide Web. Este define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse.

Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al cliente que efectúa la petición (un navegador web o un spider) se lo conoce como "user agent" (agente del usuario). A la información transmitida se la llama recurso y se la identifica mediante un localizador uniforme de recursos (URL). Los recursos pueden ser archivos, el resultado de la ejecución de un programa, una consulta a una base de datos, la traducción automática de un documento, etc.

HTTP es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente.

¿Que son los números 1XX, 2XX, 3XX, 4XX y 5XX? Códigos de Estatus

Ok, aclarado que es HTTP, nos damos cuenta de siempre que vemos estos mensajes aparecen en números de 3 dígitos siempre basados en los números 100, 200, 300, 400 y 500, esto es porque cada grupo de dígitos es una clase, el primer nímero del dígito nos indica una de las 5 clases de respuesta, el mínimo de respuestas que maneja un cliente HTTP son estas 5 clases.

Clases de Respuestas Dadas por un Cliente HTTP

Ok, ahora empieza la comedia, aquí nos ayudarán los gato-códigos a entender el significado de cada una de las respuestas.

1xx: Respuestas informativas

Petición recibida, continuando proceso. Esta clase de código de estatus indica una respuesta provisional, que consiste únicamente en la línea de estatus y en encabezados opcionales, y es terminada por una línea vacía. Ya que HTTP/1.0 no definía códigos de estatus 1xx, los servidores no deben enviar una respuesta 1xx a un cliente HTTP/1.0, excepto en condiciones experimentales.

100 Continúa: Esta respuesta significa que el servidor ha recibido los encabezados de la petición, y que el cliente debería proceder a enviar el cuerpo de la misma (en el caso de peticiones para las cuales el cuerpo necesita ser enviado; por ejemplo, una petición Hypertext Transfer Protocol).



101 Conmutando protocolos: Esto significa que se le ha requerido al servidor que cambie los protocolos y el servidor está indicando que así lo hará.



102 Procesando (WebDAV - RFC 2518): Debido a que una WebDAV puede contener muchas sub-peticiones respecto a operaciones con archivos pordría tomar mas tiempo para completar la petición. Este código indica que el servidor a recibido la petición y la esta procesando, pero no hay una respuesta disponible aún. Esto previene que el cliente asuma que la petición fue perdida.

Para este no tengo gato-código.

2xx: Peticiones correctas

Esta clase de código de estado indica que la petición fue recibida correctamente, entendida y aceptada.

200 OK: Respuesta estándar para peticiones correctas.



201 Creado: La petición ha sido completada y ha resultado en la creación de un nuevo recurso.



202 Aceptada: La petición ha sido aceptada para procesamiento, pero este no ha sido completado. La petición eventualmente pudiere no ser satisfecha, ya que podría ser no permitida o prohibida cuando el procesamiento tenga lugar.



203 Información no autoritativa (desde HTTP/1.1): El servidor procesó la petición con éxito, pero está devolviendo información que puede ser de otra fuente.

El gato-código que me devolvieron es de otra raza.

204 Sin contenido: El servidor procesó la petición con éxito, pero no devuelve ningún contenido.



205 Recargar contenido: El servidor procesó la petición con éxito, pero no devuelve ningún contenido. A diferencia de la respuesta 204, esta respuesta requiere que el cliente reenvíe la petición.

Sin gato-código por acá.

206 Contenido parcial: La petición servirá parcialmente el contenido solicitado. Esta característica es utilizada por herramientas de descarga como wget para continuar la transferencia de descargas anteriormente interrumpidas, o para dividir una descarga y procesar las partes simultáneamente.



207 Estado múltiple (Multi-Status, WebDAV): El cuerpo del mensaje que sigue es un mensaje XML y puede contener algún número de códigos de respuesta separados, dependiendo de cuántas sub-peticiones sean hechas.



208 Ya Reportado (WebDAV; RFC 5842): Las partes del DAV ya han sido enumeradas  en una  petición anterior y no serán incluídas nuevamente.

Sin gato-código.

3xx: Redirecciones


El cliente tiene que tomar una acción adicional para completar la petición.


Esta clase de código de estado indica que una acción subsecuente necesita efectuarse por el agente de usuario para completar la petición. La acción requerida puede ser llevada a cabo por el agente de usuario sin interacción con el usuario si y sólo si el método utilizado en la segunda petición es GET o HEAD. El agente de usuario no debe redirigir automáticamente una petición más de 5 veces, dado que tal funcionamiento indica usualmente un Bucle infinito.

300 Múltiples opciones: Indica opciones múltiples para el URI que el cliente podría seguir. Esto podría ser utilizado, por ejemplo, para presentar distintas opciones de formato para video, listar archivos con distintas extensiones o desambiguación de significados.



301 Movido permanentemente: Esta y todas las peticiones futuras deberían ser dirigidas a la URI dada.



302 Movido temporalmente (Found): Este es el código de redirección más popular, pero también un ejemplo de las prácticas de la industria contradiciendo el estándar. La especificación HTTP/1.0 (RFC 1945) requería que el cliente realizara una redirección temporal (la frase descriptiva original fue "Moved Temporarily"), pero los navegadores populares lo implementaron como 303 See Other. Por tanto, HTTP/1.1 añadió códigos de estado 303 y 307 para eliminar la ambigüedad entre ambos comportamientos. Sin embargo, la mayoría de aplicaciones web y bibliotecas de desarrollo aún utilizan el código de respuesta 302 como si fuera el 303.



303 Vea otra (desde HTTP/1.1): La respuesta a la petición puede ser encontrada bajo otra URI utilizando el método GET.



304 No modificado: Indica que la petición a la URL no ha sido modificada desde que fue requerida por última vez. Típicamente, el cliente HTTP provee un encabezado como If-Modified-Since para indicar una fecha y hora contra la cual el servidor pueda comparar. El uso de este encabezado ahorra ancho de banda y reprocesamiento tanto del servidor como del cliente.



305 Utilice un proxy (desde HTTP/1.1): Muchos clientes HTTP (como Mozilla2 e Internet Explorer) no se apegan al estándar al procesar respuestas con este código, principalmente por motivos de seguridad.



306 Cambie de proxy: Esta respuesta está descontinuada.

Este gato-código se escapó.

307 Redirección temporal (desde HTTP/1.1): Se trata de una redirección que debería haber sido hecha con otra URI, sin embargo aún puede ser procesada con la URI proporcionada. En contraste con el código 303, el método de la petición no debería ser cambiado cuando el cliente repita la solicitud. Por ejemplo, una solicitud POST tiene que ser repetida utilizando otra petición POST.



4xx Errores del cliente


La solicitud contiene sintaxis incorrecta o no puede procesarse.


La intención de la clase de códigos de respuesta 4xx es para casos en los cuales el cliente parece haber errado la petición. Excepto cuando se responde a una petición HEAD, el servidor debe incluir una entidad que contenga una explicación a la situación de error, y si es una condición temporal o permanente. Estos códigos de estado son aplicables a cualquier método de solicitud (como GET o POST). Los agentes de usuario deben desplegar cualquier entidad al usuario. Estos son típicamente los códigos de respuesta de error más comúnmente encontrados.

400 Solicitud incorrecta: La solicitud contiene sintaxis errónea y no debería repetirse.



401 No autorizado: Similar al 403 Forbidden, pero específicamente para su uso cuando la autentificación es posible pero ha fallado o aún no ha sido provista.



402 Pago requerido: La intención original era que este código pudiese ser usado como parte de alguna forma o esquema de Dinero electrónico o micropagos, pero eso no sucedió, y este código nunca se utilizó.



403 Prohibido: La solicitud fue legal, pero el servidor se rehúsa a responderla. En contraste a una respuesta 401 No autorizado, la autentificación no haría la diferencia.



404 No encontrado (este es el más común): Recurso no encontrado. Se utiliza cuando el servidor web no encuentra la página o recurso solicitado.



405 Método no permitido: Una petición fue hecha a una URI utilizando un método de solicitud no soportado por dicha URI; por ejemplo, cuando se utiliza GET en una forma que requiere que los datos sean presentados vía POST, o utilizando PUT en un recurso de sólo lectura.



406 No aceptable: El servidor no es capaz de devolver los datos en ninguno de los formatos aceptados por el cliente, indicados por éste en la cabecera "Accept" de la petición.



407 Autenticación Proxy requerida: El cliente primero debe autenticarse con el proxy.

Este gato-código se fue sin permiso.

408 Tiempo de espera agotado: El cliente falló al continuar la petición - excepto durante la ejecución de videos Adobe Flash cuando solo significa que el usuario cerró la ventana de video o se movió a otro.



409 Conflicto: Idica que la petición no pudo ser procesada por causa de un conflicto en la petición, tal como un conflicto de edición.



410 Ya no disponible: Indica que el recurso solicitado ya no está disponible y no lo estará de nuevo. Este código debería ser utilizado cuando un recurso haya sido quitado intencionalmente; sin embargo, en la práctica, un código 404 No encontrado es expedido en su lugar.



411 Requiere longitud: La petición no especificó el tamaño (largo) de su contenido, el cual es requerido para el recurso pedido.



412 Falló precondición: El servidor no cumple con una de las precondiciones que el cliente indicó en la petición.

El gato-código de este no cumplía con la precondición.

413 Solicitud demasiado larga: La petición es mas larga (grande) del lo que es servidor está dispuesto a procesar, o puede procesar.



414 URI demasiado larga: La URI proveída es demasiado larga para que el servidor la procese.



415 Tipo de medio no soportado: El cliente tiene un tipo de medio que el servidor o recurso no soportan.

El gato-código para este no era soportado.

416 Rango solicitado no disponible: El cliente ha preguntado por una parte de un archivo, pero el servidor no puede proporcionar esa parte, por ejemplo, si el cliente preguntó por una parte de un archivo que está más allá de los límites del fin del archivo.



417 Falló expectativa: El servidor no puede llenar los requerimientos esperados de la petición.



418 I'm a teapot (RFC 2324): Este código fué deifinido en 1998 como una de lass bromas tradicionales de IETF en RFC 2324, Protocolo de Control de Taza de Té en Hipertexto, no está implementado en servidores HTTP, sin embargo si existen implementaciones.



422 Entidad no procesable (WebDAV - RFC 4918): La solicitud está bien formada pero fue imposible seguirla debido a errores semánticos.



423 Bloqueado (WebDAV - RFC 4918): El recurso al que se está teniendo acceso está bloqueado.



424 Falló dependencia (WebDAV) (RFC 4918): La solicitud falló debido a una falla en la solicitud previa.




425 Colección sin ordenar: Definido en los drafts de WebDav Advanced Collections, pero no está presente en "Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol" (RFC 3648).



426 Actualización requerida (RFC 2817): El cliente debería cambiarse a TLS/1.0.



429 Demasiadas Peticiones (RFC 6585): El cliente ha enviado demasiadas peticiones en un periodo determinado de tiempo.



431 El Encabezado de la Petición es muy Largo (RFC 6585): El servidor se niega a procesar la peticion ya sea porque, o el encabezado es muy largo, o el colectivo de los envabezados es muy largo.



444 Sin Respuesta (Nginx): Una extensión Nginx del servidor HTTP. El servidor no devuelve información al cliente y cierra la conexión.



449 Reintente con: Una extensión de Microsoft. La petición debería ser reintentada después de hacer la acción apropiada.

Estoy esperando que el gato-código de este haga la acción apropiada.

450 Ventana Bloqueada por Control Parental (Microsoft): Es una extansión de Microsoft. Este error es dado cuando la función de control parental de Windows está activada y bloquea el acceso a dicha página.



5xx Errores de servidor


El servidor falló al completar una solicitud aparentemente válida.


Los códigos de respuesta que comienzan con el dígito "5" indican casos en los cuales el servidor tiene registrado aún antes de servir la solicitud, que está errado o es incapaz de ejecutar la petición. Excepto cuando está respondiendo a un método HEAD, el servidor debe incluir una entidad que contenga una explicación de la situación de error, y si es una condición temporal o permanente. Los agentes de usuario deben desplegar cualquier entidad incluida al usuario. Estos códigos de repuesta son aplicables a cualquier método de petición.

500 Error interno: Es un código comúnmente emitido por aplicaciones empotradas en servidores web, mismas que generan contenido dinámicamente, por ejemplo aplicaciones montadas en IIS o Tomcat, cuando se encuentran con situaciones de error ajenas a la naturaleza del servidor web.



501 No implementado: El servidor no reconoce el método de petición o no tiene la capacidad de completar la petición.

Este gato-código no tenía la capacidad de estar acá.

502 Pasarela incorrecta: El servidor estaba actuando como puente o proxy y recibió una respuesta inválida del servidor al que conectaba.



503 Servicio no disponible: El servidor no está disponible (por sobrecarga o por mantenimiento). Generalmente es un estado temporal.



504 Tiempo de espera de la pasarela agotado: El servidor estaba acuando como puente o proxy y no recibió una respuesta del servidor que conectaba en el tiempo requerido.

A este gato-código se le acabó el tiempo de respuesta.

505 Versión de HTTP no soportada: El servidor no soporta la versión del protocolo HTTP usada en esta petición.

La raza de este gato-código no era soportada.

506 Variante también negocia (RFC 2295): Resultados transparentes para la petición de contenido negociado en una referencia circular.



507 Almacenamiento insuficiente (WebDAV - RFC 4918): El servidor no puede almacenar la presentación necesaria para completar la petición.



508 Loop Detectado (WebDAV; RFC 5842): El servidor detectó un loop mientras procesaba la petición.



509 Límite de ancho de banda excedido: Este código de estatus, a pesar de que es utilizado por muchos servidores, no es oficial.



510 No extendido (RFC 2774): Se requieren mas extensiones para la petición para que el servidor pueda completarla.

Al gato-código de este le faltaban extensiones.

511 Atenticación de Red Requerida (RFC 6585): El cliente necesita atenticarse para tener acceso a la red.

598 Error Timeout de Lectura de Red (Desconocido): Este código de estatus no es especificado por ningún  RFC, pero es usado por Microsoft.

Este gato-código tuvo un error de lectura.

599 Error Timeout de Conexión de Red (Desconocido): Este código de estatus no es especificado por ningún RFC, pero es usado por Microsoft.



Bueno Identikeros, estos son todos los códigos de estatus, ojalá que los gato-códigos les hayan ayudado a entender mejor...


Espero que hayan aprendido algo y que lo hayan disfrutado, hasta la próxima...


Códigos de Estatus HTTP [Gato-Códigos][LRF2]
6 Puntos Score: 6/10
Visitas: 1131 Favoritos: 3
Ver los usuarios que votaron...
5 Comentarios Códigos de Estatus HTTP [Gato-Códigos][LRF2]
Me gusto el dise?
@Fachax Gracias hermano...
a mi me gustaron las fotos de los gatos estaban graciosas..
jaja largo pero muy buen post, saludos y muchas gracias
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!