Códigos de Estado HTTP

Códigos de Estado HTTP: 403, 404, 502, 503 y más

Los Códigos de Estado HTTP en algún momento nos han aparecido a todos. Generalmente son errores. Pero ¿Cómo se corrigen los errores HTTP? ¿Cómo se evitan los errores HTTP? ¿Qué significan todos estos códigos de estado HTTP? Veamos

Comparte

CATEGORÍA: DISEÑO WEB

A todos nos ha pasado que en algún momento deseamos visitar un sitio web y nos llevamos la desagradable sorpresa que, en vez de contenido nos conseguimos que no hay nada o, lo que es peor, nos aparece una página que nos devuelve un error con un gran número que la mayoría de las veces, no sabemos qué significa. Algunas veces, estos códigos de error web, códigos de error HTTP o códigos de estado HTTP también vienen acompañados de alguna frase, como por ejemplo: «Error 404. La página solicitada no existe» o «Error 503. Service Unavailable» (Servicio no disponible, por su significado en español). Pero muchas veces encontramos otros que no tenemos idea de su significado.

Como visitante casual del sitio web, esto es simplemente molesto. Por lo general, lo intentamos de nuevo: actualizar, volver, hacer clic de nuevo. A veces funciona, lo llamamos un problema técnico y lo olvidamos rápidamente. A veces no funciona; a eso lo llamamos «un mal sitio web» y, por lo general, salimos del sitio, buscamos otro y también lo olvidamos de inmediato.

Pero si realmente estamos administrando un sitio web, eso lo cambia todo. Los códigos de estado HTTP cuando representan un error, no son molestos. Son enloquecedores. Son vergonzosos.

Si somos expertos en tecnología o, si tenemos un buen equipo de TI administrando nuestra web, esto puede no ser tan importante. La mayoría de problemas como esos son fáciles de solucionar. Pero si somos propietarios de una pequeña empresa, y tenemos nuestro propio sitio web, los códigos de estado HTTP y los códigos de error nos pueden volver locos.

¿Cómo se corrigen los errores HTTP? ¿Cómo se evitan los errores HTTP? ¿Qué significan todos estos códigos de estado HTTP?

 

Estos mensajes no son más que códigos de estado, que describen el estatus, en un momento determinado, de una página web o de su servidor. Existe una lista estandarizada de estos  códigos de estado HTTP que explica lo que significa cada error. Dichos códigos están organizados por números de tres cifras, y la primera nos indicará el tipo de respuesta que nos está devolviendo el servidor.

 

De esta forma, podemos determinar si la solución del error se encuentra en nuestras manos o no, ya que los  códigos de estado HTTP tienen influencia en el SEO de una página web. Aquí vamos a definir el significado de estos códigos para que podamos tener una idea de lo que ha pasado con nuestra petición y si sucedió en nuestro sitio web, para aplicarle una solución rápida.

 

Pero primero, para comprender los códigos de estado HTTP, debemos comprender cómo funciona HTTP en primer lugar.

«Los códigos de estado HTTP cuando representan un error, no son molestos. Son enloquecedores. Son vergonzosos.»

Solicitudes y respuestas HTTP

 

HTTP significa «Protocolo de transferencia de hipertexto».

 

¿Qué es un protocolo?

Cuando un marinero aborda un barco militar, tiene una determinada forma de hacer las cosas. Primero saluda a la bandera, luego saluda al oficial de servicio, luego pide permiso para abordar. Eso es un protocolo.

 

Un protocolo es un conjunto de reglas para cierto tipo de interacción.

 

A veces, un protocolo es muy rígido y definido:

 

Para abordar un barco:

  • Saludo a la bandera
  • Saludo al oficial de guardia
  • Pedir permiso para abordar.

 

Otras veces, los protocolos son un poco más laxos y no están escritos, pero aún así son bien conocidos:

 

Cuando llega nuestro pastel de cumpleaños:

  • Esperamos a que todos terminen de cantar
  • Pedimos un deseo
  • Apagamos las velas, preferiblemente de una vez (para que el deseo se cumpla).

Las interacciones informáticas tienen que ver con los protocolos. Cuando dos computadoras (o una red de computadoras) se comunican entre sí, deben tener un conjunto de reglas bien definidas para comunicarse.

 

Las reglas sobre cómo se comunica el navegador web de nuestra computadora local con el servidor web que aloja el sitio que estamos intentando ver se denominan HTTP (Protocolo de transferencia de hipertexto).

¿Por qué estamos transfiriendo hipertexto?

Originalmente, las páginas web eran principalmente documentos. Se pensaba que una «página web» era una «página» real. Un sitio era una colección de documentos. La página principal de un sitio era un «índice» de los documentos disponibles. ¿Qué tipo de documentos? Documentos de hipertexto.

 

El hipertexto significa simplemente que los documentos se vinculan entre sí con «hipervínculos». Hoy en día los llamamos simplemente «enlaces» o “links” ; ahora son tan comunes que ya no los llamamos «hiper».

 

«Hipervínculos» son los que se puede hacer clic en el texto: esa idea, que es tan común ahora, fue tan revolucionaria cuando se creó por primera vez en internet que todo fue nombrado así.

¿El idioma para la creación de estos documentos? Lenguaje de marcado de hipertexto (HTML). ¿Y el protocolo para solicitar y recibir estos documentos? HTTP.

 

Entonces HTTP es…

HTTP es el conjunto de reglas y procedimientos sobre cómo un navegador web (u otro «cliente») solicita recursos de otra computadora (en este caso el «servidor»), y cómo esa otra computadora responde a esas solicitudes.

Solicitud HTTP

Entonces, cuando escribimos una dirección, hacemos clic en un enlace o abrimos una página web, nuestro navegador envía una solicitud a un servidor.

 

El destino de la solicitud está definido por la URL y el sistema DNS. El sistema DNS es un tema para otro día, pero básicamente, el DNS es una libreta de direcciones que relaciona los nombres de dominio con las direcciones IP específicas de las computadoras. Aunque en este artículo sobre Hosting y Dominio, se explica un poco del funcionamiento del DNS.

 

El destino de la solicitud está definido por el nombre de dominio, y la URL completa es la parte más importante de la solicitud: todo lo que aparece después del nombre de dominio le dice al servidor el recurso específico que se solicita. La solicitud también contiene otra información como:

  • El tipo de solicitud. Los dos más comunes son:
    • GET – «Por favor envíeme este recurso».
    • POST – «Aquí hay algunos datos para procesar».
  • Header Fields: campos de metadatos opcionales que se utilizan para informar al servidor sobre el cliente (por ejemplo, qué tipo de navegador).
  • Body: los datos enviados por el cliente (para usar con POST).

 

El servidor recibe esta solicitud y (después de algún procesamiento), envía una respuesta.

Respuesta HTTP

La primera línea de una respuesta es el estado HTTP .

 

La línea de estado tiene dos partes, un código numérico (como 200) y una explicación de texto (como Success, éxito ).

 

Cuando todo funciona bien, obtiene el 200: Success status (que nosotros, como usuarios humanos, nunca vemos), luego algunos datos de encabezado (que tampoco vemos) y luego el recurso que solicitamos (que es lo que sí vemos).

«Cuando las cosas no funcionan tan bien, es posible que veamos un mensaje sobre el estado. Por lo general, eso sucede cuando obtenemos algo como un código 404 o 501.»

El recurso puede ser una página web completa, una imagen, un video, un archivo de sonido. También puede ser algo que no vemos, como un archivo JavaScript o una hoja de estilo CSS.

 

Cuando las cosas no funcionan tan bien, es posible que veamos un mensaje sobre el estado. Por lo general, eso sucede cuando obtenemos algo como un código 404 o 501. Esos son códigos de error, también llamados códigos de estado HTTP. Algo salió mal.

 

Las respuestas con códigos de estado HTTP 404 o 501 no regresan con el recurso que solicitamos. A veces regresan con un recurso diferente (como la inteligente página 404). A veces, no hay ningún recurso (es entonces cuando aparece la página en blanco del navegador y el mensaje de error predeterminado).

 

También hay códigos de estado que le dicen al navegador que busque en otro lugar, como la redirección 301. Estas respuestas tampoco vienen con el recurso solicitado.

 

En cambio, los datos del encabezado le dicen al navegador que realice una nueva solicitud con alguna otra URL. Por lo general, no nos damos cuenta de cuándo sucede eso, porque nuestro navegador simplemente hace lo que se le dice y hace la segunda solicitud.

 

Luego nos muestra el recurso de la segunda respuesta, sin decirnos nada sobre lo que sucedió. Los códigos de respuesta de redireccionamiento no suelen importarles a los usuarios finales, pero deberían importar mucho a los administradores de sitios web.

Clases de códigos de estado HTTP

 

Podemos notar que todos los códigos de estado son números de tres dígitos, que están entre 1 y 5.

 

Los códigos de estado HTTP se agrupan en cinco «clases”. El 404, “404: Not Found” es parte de los códigos de estado 400 (o, a veces, 4xx). Cada clase abarca una gama particular de problemas o estados.

  • 1xx – Informativo: estas son respuestas provisionales destinadas a ser utilizadas mientras el servidor continúa procesando la solicitud. Rara vez se utilizan.
  • 2xx – Éxito – Códigos que se utilizan cuando las cosas funcionan como se supone que deben hacerlo. Se devuelven diferentes códigos de éxito en función de lo que, específicamente, intentaba hacer la solicitud.
  • 3xx – Redirección – Códigos usados ​​para decirle al cliente que busque el recurso solicitado en otro lugar.
  • 4xx – Error del cliente: estos códigos le dicen al cliente que hizo algo mal.
  • 5xx – Error del servidor: código para cuando algo en el servidor no funciona como se esperaba.

 

Cubriremos los códigos específicos de cada clase con más profundidad en sus propias secciones.

 

Manejo de códigos de estado (y error) HTTP

 

Esta guía cubre todos (o casi todos) los posibles  códigos de estado HTTP y códigos de error HTTP, desde los comunes hasta los que nunca se usan.

Códigos de estado HTTP 100: Respuestas Informativas

 

Los  códigos de estado HTTP que empiezan por 100 no se pueden considerar códigos de error, si no más bien respuestas del tipo informativas. Generalmente como usuario no los vemos, pero tras bambalinas esto indica que la petición ha sido recibida y que el proceso va a continuar.

  • 100 «Continue» (Continuar): Le indica al navegador que puede continuar realizando su petición (se utiliza para indicar que la primera parte de la petición del navegador se ha recibido correctamente).
  • 101 «Switching Protocols» (Cambiando protocolos): Este le indica al navegador que acepta el cambio de protocolo propuesto por este (puede ser por ejemplo un cambio de HTTP 1.0 a HTTP 1.1).
  • 102 «Processing» (Procesando): Este le indica al navegador que ha recibido correctamente su petición pero aún está procesandola (esto evita que el navegador piense que la petición se ha perdido cuando no recibe ninguna respuesta).
  • 103 «Checkpoint» (Primeros avisos): Esto reanuda una petición que había sido cancelada con anterioridad.
Codigo HTTP 200 OK

Códigos de estado HTTP 200

Otros  códigos de estado HTTP que no pueden ser considerados como códigos de error, ya que estos indican que la petición ha sido recibida, fue procesada y aceptada. Por lo tanto, nunca veremos estos tipos de códigos en nuestro navegador ya que señalan que todo ha funcionado correctamente.

  • 200 «Success» (Todo esta bien): Este es el código que se entrega cuando una página web o recurso actúa exactamente como se espera.
  • 201 «Created» (Creado): El servidor ha cumplido con la petición solicitada por el navegador y, ha resultado en la creación de un nuevo recurso.
  • 202 «Accepted» (Aceptado): La petición fue aceptada para su procesamiento, pero esta no ha sido completada.
  • 203 «Non-Authoritative Information» (Información no autorizada): Este código de estado aparece cuando la petición ha sido completada, pero su contenido no se ha obtenido de la fuente original sino de otro servidor.
  • 204 «No Content» (Sin contenido): La petición se ha procesado con éxito, pero el resultado no va devolver ningún contenido
  • 205 «Reset Content» (Restablecer el Contenido): Al igual que el código anterior, se debe reiniciar la página desde donde se realizó la petición.
  • 206 «Partial Content» (Contenido Parcial): Este código indica que se está devolviendo el contenido pedido pero de forma parcial, (este código es útil por ejemplo para páginas con formularios cuyo contenido debe borrarse después de que el usuario lo envíe)
  • 207 «Multi Status» (Estatus Múltiple): Devuelve varias peticiones al mismo tiempo.
  • 208 «Already Reported» (Ya Informado): El listado de elementos ya fue devuelto, por esto no se volverá a listar
Redirección 301

Códigos de estado HTTP 300

 

Los  códigos de estado HTTP que comienzan con el número 300 están directamente relacionados con las redirecciones. Los servidores se valen de estos códigos para avisar al navegador que la petición que se ha realizado, bien sea una página o un recurso, ha sido movido de sitio. Como usuario, no vemos estos códigos, sin embargo gracias a ellos una página, movida o eliminada, te redirigirá automáticamente a otra.

  • 300 «Multiples Choices» (Opciones Múltiples): Este código indica al navegador que existen diferentes opciones para el contenido solicitado. Por ejemplo, para presentar distintas opciones de formato para video o listar archivos con distintas extensiones.
  • 301 «Moved Permanently» (Movido Permanentemente): El recurso solicitado no se encuentra en esta ubicación y se ha movido permanentemente a otra.
  • 302 «Found» (Encontrado): El recurso solicitado se ha movido a otra ubicación y ha sido encontrado.
  • 303 «See Other» (Ver Otros): Igual al código anterior.
  • 304 «Not Modified» (No Modificado): Este código le indica al navegador que el recurso solicitado no se ha modificado desde la última vez que lo pidió. De esta forma se evita que la descargue nuevamente, ahorrando ancho de banda.
  • 305 «Use Proxy» (Usa Proxy): El recurso solicitado solamente está disponible por medio de un proxy.
  • 306 «Switch Proxy»: Este código se utilizaba en las versiones antiguas de HTTP pero ya no se usa.
  • 307 «Temporary Redirect» (Redireccionamiento Temporal): Este código le indica al navegador que el recurso solicitado ha sido movido de sitio, pero aún está disponible en la dirección.
  • 308 «Permanent Redirect» (Redireccionamiento Permanente): El recurso solicitado por el navegador se encuentra en otro lugar y este cambio es permanente. A diferencia del código 301, no se permite cambiar el método HTTP para la nueva petición.
Código de Estado HTTP 404

Códigos de estado HTTP 400

Los  códigos de estado http que inician con el número 400 corresponden a errores a nivel del cliente y estos son más probable que los veamos. Por ejemplo el súper conocido error 404 que aparece cuando un recurso que estamos buscando no existe. Puede ser ocasionado por escribir mal una dirección web o que el recurso ha sido borrado completamente.

  • 400 «Bad Request» (Mala Petición): El requerimiento ha ido mal. Generalmente este error se puede solucionar recargando la página o actualizando el navegador.
  • 401 «Unauthorized» (No autorizado): El usuario que ha solicitado el recurso no tiene permiso para recibir el contenido.
  • 402 «Payment Required» (Pago Requerido): Actualmente en desuso.
  • 403 «Forbidden» (Prohibido): El recurso solicitado es correcto pero el servidor ha negado la petición. Es posible que se requiera de un inicio de sesión para poder acceder al mismo.
  • 404 «Not Found» (No Encontrado): Se utiliza cuando el servidor web no encuentra la página o recurso solicitado. Es el código más famoso y frecuente que podemos encontrar en Internet. Posiblemente existió en el pasado pero fue borrado o también puede darse por una dirección mal escrita.
  • 405 «Method Not Allowed» (Método no Permitido): Este código aparece cuando no se permite el uso de ese método.
  • 406 «Not Acceptable» (Respuesta 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 «Proxy Authentication Required» (Se requiere autenticación de proxy): El servidor acepta la solicitud pero requiere que el cliente se identifique mediante un proxy.
  • 408 «Request Timeout» (Se acabó el tiempo del requerimiento): El servidor ha esperado durante demasiado tiempo una respuesta por parte del cliente.
  • 409 «Conflict» (Conflicto): La solicitud no fue completada ya que hubo un conflicto con ella
  • 410 «Gone» (Se ha ido): Indica que el recurso solicitado ya no está disponible y no lo estará de nuevo. Debería ser utilizado cuando un recurso ha sido quitado de forma permanente. Generalmente es usado por los buscadores para eliminar el contenido de su base de datos.
  • 411 Length Required (Longitud requerida): Esto significa que el recurso solicitado requiere que el cliente especifique una cierta longitud y que no lo hizo.
  • 412 «Precondition Failed» (La condición previa falló): El navegador incluyó ciertas condiciones en su petición y el servidor no fue capaz de cumplir con esas especificaciones.
  • 413 «Payload Too Large» (Carga útil demasiado grande): La petición hecha por el navegador es muy grande y por este motivo el servidor se niega a procesar.
  • 414 «URL Too Long» (URL demasiado larga): La dirección web es muy larga y por este motivo el servidor no las procesa.
  • 415 «Unsupported Media Type» (Tipo de Medios no Soportados): El tipo de medio incluido en la solicitud es distinto al que se esperaba o el servidor no lo soporta.
  • 416 «Range Not Satisfiable» (Rango no satisfactorio): La solicitud del cliente fue por una fracción de un recurso que es incorrecto y el servidor no puede devolver.
  • 417 «Expectation Failed» (La expectativa fracasó): El servidor no puede cumplir con los requisitos especificados en la cabecera de la solicitud.
  • 418 «I’m a teapot» (Soy una tetera): Es un código de error web que surgió como una broma del Día de las Bromas en Abril de 1988. Se puede recibir este error AQUÍ (https://www.google.com/teapot).
  • 421 «Misdirected Request» (Solicitud mal dirigida): El servidor no fue capaz de producir una respuesta
  • 422 «Unprocessable Entity» (Entidad no procesable): La petición contiene un error semántico a pesar de ser correcta.
  • 423 «Locked» (Bloqueado): Este recurso se encuentra bloqueado
  • 424 «Failed Dependency» (Dependencia fallida): Este recurso depende de otra respuesta, la cual falló.
  • 426 «Upgrade Required» (Se requiere actualización): Debido al contenido solicitado, el cliente debe utilizar un protocolo diferente
  • 428 «Precondition Required» (Se requiere condición previa): El servidor necesita que se especifiquen las condiciones antes de procesar el requerimiento del cliente.

Códigos de estado HTTP 500

 

Mientras que los  códigos de estado HTTP 400 son errores a nivel de cliente (navegador, conexión o sintaxis) los  códigos de estado HTTP que empiezan con el número 500 vienen de parte del servidor. Esto quiere decir que es posible que el servidor presente alguna falla temporal y en este caso no hay mucho que se pueda hacer más que esperar e intentar de nuevo más tarde.

  • 500 «Internal Server Error» (Error Interno del Servidor): Es el segundo error más popular después del error 404, el cual indica que hay un problema en el servidor. No especifica nada concreto, así que el problema puede ser cualquier cosa. Como usuario solo nos queda esperar e intentar de nuevo más tarde.
  • 501 «Not Implemented» (No Implementado): El servidor aún no ha podido implementar la petición. Aunque es posible que sea añadida en el futuro.
  • 502 «Bad Gateway» (Mala Entrada): El servidor actúa como un proxy o una puerta de enlace y ha recibido una respuesta no válida de otro servidor.
  • 503 «Service Unavailable» (Servicio No Disponible): El servidor no está disponible en este momento. Es posible que esté sobrecargado o esté con tareas de mantenimiento. Es mejor intentarlo más tarde.
  • 504 «Gateway Timeout» (La Puerta de Enlace Agotó el Tiempo de Espera): El servidor actúa como una puerta de enlace o un proxy y no recibió ninguna respuesta del servidor.
  • 505 «HTTP Version Not Supported» (Versión de HTTP no soportada): El servidor no puede soportar la versión del protocolo HTTP que le fue solicitada.
  • 511 «Network Authentication Required» (Se Requiere Autenticación de la Red): El cliente debe autenticarse.
  • 521 «Version Mismatch» (No Coincide la Versión): Este error sale cuando la versión no es compatible con tu hardware

¿Dónde aprender más sobre los códigos de estado HTTP?

 

A parte de los códigos que hemos cubierto en esta lista, hay muchos más de los que se puede aprender. Existen varios recursos que es posible consultar para leer un poco más sobre estos códigos incluyendo:

 

Conocer el significado de los códigos de estado HTTP puede ayudarnos a resolver algunos problemas únicos para mantener nuestro sitio web en perfecto estado de funcionamiento.

¿Te gustó el artículo? Compártelo con tus contactos

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments