Listado de códigos de estado HTTP (Códigos de error HTTP)

Listado de códigos de estado HTTP (Códigos de error HTTP)

Qué son los códigos de estado HTTP

Los códigos de estado HTTP son números que el servidor envía al cliente (generalmente un navegador web) para indicar el resultado de una solicitud HTTP. Estos códigos son parte de la respuesta del servidor y ayudan a los desarrolladores a diagnosticar problemas y a entender cómo interactúan los diferentes componentes de la web.

Estructura de los códigos de estado HTTP

Los códigos de estado HTTP se dividen en cinco categorías, cada una representada por el primer dígito del código:

  • 1xx – Información: Indican que la solicitud fue recibida y que el proceso continúa.
  • 2xx – Éxito: Indican que la solicitud fue recibida, entendida y procesada correctamente.
  • 3xx – Redirecciones: Indican que se requiere una acción adicional para completar la solicitud.
  • 4xx – Errores del cliente: Indican que hubo un problema con la solicitud del cliente.
  • 5xx – Errores del servidor: Indican que el servidor falló al completar una solicitud válida.

Códigos de estado más comunes

Códigos de éxito (2xx)

  • 200 OK: La solicitud fue exitosa.
  • 201 Created: La solicitud fue exitosa y se creó un nuevo recurso.
  • 204 No Content: La solicitud fue exitosa, pero no devuelve contenido.

Códigos de redirección (3xx)

  • 301 Moved Permanently: El recurso solicitado se ha movido permanentemente a otra URL.
  • 302 Found: El recurso se encuentra temporalmente en otra URL.
  • 304 Not Modified: Indica que el contenido no ha cambiado desde la última solicitud.

Códigos de error del cliente (4xx)

  • 400 Bad Request: La solicitud no se pudo procesar debido a un error del cliente.
  • 401 Unauthorized: Se requiere autenticación para acceder al recurso.
  • 404 Not Found: El recurso solicitado no se encuentra.
  • 403 Forbidden: El servidor entendió la solicitud, pero se niega a autorizarla.

Códigos de error del servidor (5xx)

  • 500 Internal Server Error: Se ha producido un error inesperado en el servidor.
  • 502 Bad Gateway: El servidor actuó como puerta de enlace o proxy y recibió una respuesta inválida del servidor de origen.
  • 503 Service Unavailable: El servidor no está disponible temporalmente.

Ejemplos prácticos de manejo de errores HTTP

En el desarrollo de aplicaciones web, es esencial manejar correctamente los diferentes códigos de estado HTTP. A continuación, se presentan ejemplos de cómo gestionar errores en una API REST utilizando Python y Flask:

Configuración de una API básica con Flask


from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/api/resource', methods=['GET'])
def get_resource():
    resource_id = request.args.get('id')
    if resource_id is None:
        return jsonify({'error': 'Resource ID is required'}), 400  # 400 Bad Request
    # Lógica para obtener el recurso
    return jsonify({'id': resource_id, 'name': 'Example Resource'}), 200  # 200 OK

@app.errorhandler(404)
def not_found(error):
    return jsonify({'error': 'Resource not found'}), 404  # 404 Not Found

if __name__ == '__main__':
    app.run(debug=True)
    

En este ejemplo, se crea una API simple que devuelve un recurso según su ID. Si el ID no se proporciona, el servidor devuelve un 400 Bad Request. Además, si se solicita un recurso inexistente, se retorna un 404 Not Found.

Tabla completa de los códigos de error

1×× Informativos

CódigoSignificadoSEO / Uso recomendado
100 ContinueSolicitud recibida, el cliente puede continuar.Se usa muy poco en SEO.
101 Switching ProtocolsEl servidor cambia de protocolo según lo solicitado.Sin impacto en SEO.
102 ProcessingEl servidor recibió la solicitud y sigue procesando; sin respuesta final aún.Usado en operaciones largas (WebDAV); sin impacto SEO.

2×× Éxito

CódigoSignificadoSEO / Uso recomendado
200 OKLa solicitud se completó correctamente.Respuesta estándar necesaria para el rastreo.
201 CreatedRecurso creado (normalmente en POST).Común en APIs; no afecta al rastreo.
202 AcceptedSolicitud recibida pero procesamiento pendiente.Operaciones asíncronas; sin efecto SEO.
203 Non-Authoritative InformationRespuesta generada por un proxy transformador.Poco común; sin valor SEO.
204 No ContentÉxito sin cuerpo de respuesta.Útil para APIs.
205 Reset ContentEl cliente debe reiniciar el formulario.No relevante para SEO.
206 Partial ContentEl servidor entregó solo una parte del recurso.Útil en descargas/streaming; sin uso SEO.
207 Multi-StatusMúltiples códigos para WebDAV.No relevante para SEO.
208 Already ReportedEvita repeticiones en WebDAV.No relevante para SEO.
226 IM UsedEl servidor aplicó codificación delta.Muy raro; sin impacto SEO.

3×× Redirección

CódigoSignificadoSEO / Uso recomendado
300 Multiple ChoicesVarias opciones para el recurso.Puede confundir a los robots; evitar.
301 Moved PermanentlyRecurso movido permanentemente.Redirección óptima para SEO.
302 FoundRedirección temporal.Evitar en SEO a largo plazo; mejor usar 301.
303 See OtherRedirige a otra URI con método GET.Usado en envíos de formularios.
304 Not ModifiedEl cliente puede usar su versión en caché.Reduce carga de rastreo.
305 Use ProxyDebe accederse mediante proxy.Obsoleto; ignorar.
307 Temporary RedirectSimilar a 302, pero conserva el método.Para movimientos temporales; no usar a largo plazo.
308 Permanent RedirectSimilar a 301 pero conserva el método.Buena alternativa SEO a 301.

4×× Error del cliente

CódigoSignificadoSEO / Uso recomendado
400 Bad RequestSintaxis inválida en la solicitud.Revisar logs; corregir URLs mal formadas.
401 UnauthorizedAutenticación requerida.Puede bloquear a los rastreadores.
402 Payment RequiredReservado para uso futuro.No relevante.
403 ForbiddenAcceso denegado.Evitar bloquear páginas importantes.
404 Not FoundPágina no encontrada.Aplicar redirección o personalizar la página.
405 Method Not AllowedMétodo no permitido.Revisar endpoints de API.
406 Not AcceptableEl recurso no puede devolver el formato solicitado.Poco común; sin relevancia SEO.
407 Proxy Authentication RequiredEl cliente debe autenticarse en el proxy.No relevante.
408 Request TimeoutEl servidor agotó el tiempo de espera.Puede afectar rastreo.
409 ConflictConflicto de solicitud.Problemas de aplicaciones; no SEO.
410 GoneRecurso eliminado intencionalmente.Indica a buscadores que la página ya no existe.
411 Length RequiredFalta el encabezado Content-Length.No relevante.
412 Precondition FailedNo se cumplen las condiciones.APIs/WebDAV.
413 Payload Too LargeLa petición es demasiado grande.No relevante.
414 URI Too LongLa URL supera la longitud máxima.Evitar URLs excesivamente largas.
415 Unsupported Media TypeTipo de archivo no soportado.Sin impacto SEO.
416 Range Not SatisfiableRango inválido.No impacta SEO.
417 Expectation FailedEl servidor no puede cumplir el encabezado Expect.Raro.
418 I’m a TeapotCódigo de broma (RFC 2324).Sin uso.
421 Misdirected RequestSolicitud al servidor incorrecto.Problemas con CDN.
422 Unprocessable EntityErrores semánticos.WebDAV.
423 LockedRecurso bloqueado.WebDAV.
424 Failed DependencyFallo por dependencia.WebDAV.
426 Upgrade RequiredEl cliente debe cambiar de protocolo.No relevante.
428 Precondition RequiredEl servidor exige precondiciones.Raro.
429 Too Many RequestsLímite de peticiones excedido.Puede bloquear bots.
431 Request Header Fields Too LargeCabeceras demasiado grandes.Puede bloquear rastreadores.
444 Connection Closed Without ResponseEl servidor cierra la conexión sin responder (nginx).Auditar reglas WAF/CDN para evitar falsos positivos.
451 Unavailable for Legal ReasonsAcceso denegado por motivos legales.El contenido puede desaparecer del buscador.
499 Client Closed RequestEl cliente cierra la conexión antes de recibir respuesta (nginx).Revisar TTFB y estabilidad del servidor.

5×× Error del servidor

CódigoSignificadoSEO / Uso recomendado
500 Internal Server ErrorError genérico del servidor.Corregir de inmediato; perjudica al SEO.
501 Not ImplementedFuncionalidad no implementada.Raro.
502 Bad GatewayRespuesta inválida del servidor intermedio.Revisar hosting/CDN.
503 Service UnavailableServidor caído o sobrecargado.Útil para mantenimientos planificados.
504 Gateway TimeoutEl servidor intermedio no respondió a tiempo.Problemas de hosting/CDN.
505 HTTP Version Not SupportedVersión HTTP no soportada.Raro.
506 Variant Also NegotiatesError de configuración en la negociación de contenido.Muy raro.

Importancia de personalizar los mensajes de error

Personalizar los mensajes de error es vital para mejorar la experiencia del usuario. Proveer información clara sobre el motivo del error o los pasos a seguir puede reducir la frustración del usuario y aumentar la tasa de retención. Por ejemplo, en lugar de un simple “Error 404”, un mensaje como “La página que buscas no está disponible. Verifica la URL o vuelve a la página principal” es mucho más útil.

Conclusión

Entender y manejar los códigos de estado HTTP es una habilidad esencial para cualquier desarrollador web. Conocer la diferencia entre los códigos de éxito, redirección y error no solo permite diseñar aplicaciones más robustas, sino que también ofrece una mejor experiencia al usuario en general. Mantener una buena comunicación entre el cliente y el servidor es clave en el desarrollo moderno.

Fuentes y lecturas recomendadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies