486 words
2 minutes
1.4 Apunte De Http Y Conceptos De Programación Web

02/Sep/2025

Introducción a HTTP#

HTTP (Hypertext Transfer Protocol) es el protocolo de comunicación fundamental para la transferencia de información en la web. La versión HTTP/1.1 es la más utilizada y es tan versátil que puede implementarse en cualquier dispositivo conectado a internet, desde servidores hasta dispositivos IoT como “tostadoras inteligentes”.

Este protocolo está definido por RFC públicas (Request for Comments), documentos técnicos que establecen los estándares oficiales de internet.

Comunicación Cliente-Servidor#

HTTP establece una comunicación entre:

  • Cliente: Dispositivo que solicita recursos (navegador web, app móvil)
  • Servidor: Equipo que responde a las solicitudes proporcionando recursos

Puertos comunes utilizados:

  • Puerto 80: HTTP estándar
  • Puerto 443: HTTPS (HTTP seguro)
  • Puerto 8080: Alternativo para desarrollo
  • Puerto 8443: Alternativo para HTTPS

Versiones de HTTP#

  1. HTTP/1.1: Versión ampliamente adoptada y compatible
  2. HTTP/2: Mejora significativa en rendimiento
  3. HTTP/3: Versión más reciente que utiliza QUIC en lugar de TCP

Métodos de Petición HTTP#

GET#

  • Solicita datos de un recurso específico
  • Los parámetros se envían en la URL mediante codificación:
    /search.php?busqueda=protocolo+1.1&tipo=2
  • Limitaciones:
    • Longitud máxima de URL (depende del navegador/servidor)
    • Codificación UTF-8
    • Los datos son visibles en el historial y logs

[!IMPORTANTE] Nunca uses GET para operaciones críticas (como cambiar contraseñas o realizar transacciones) porque:

  • Los parámetros quedan expuestos en historiales y logs
  • Puede ser manipulado fácilmente
  • Es susceptible a ataques CSRF

POST#

  • Envía datos para ser procesados por el servidor
  • Los datos se envían en el cuerpo de la petición, no en la URL
  • No tiene límites estrictos de tamaño (los define el servidor)
  • Ideal para envío de formularios, archivos y datos sensibles

PUT#

  • Actualiza o crea un recurso específico

DELETE#

  • Elimina un recurso específico

Códigos de Estado HTTP#

  • 100s: Informativos (ej: 100 Continue)
  • 200s: Éxito (ej: 200 OK - solicitud exitosa)
  • 300s: Redirecciones (ej: 301 Moved Permanently) lo que pedimos se movió.
  • 400s: Errores del cliente (ej: 404 Not Found - recurso no existe)
  • 500s: Errores del servidor (ej: 500 Internal Server Error - error en el servidor)

Gestión de Errores y Logs#

Los servidores web registran actividad en:

  • access.log: Registra todas las peticiones recibidas
  • error.log: Registra errores y excepciones del servidor

Estos logs incluyen información como fecha, hora, recurso solicitado y código de estado.

Estado y Sesiones#

HTTP es un protocolo sin estado - cada petición es independiente y el servidor no “recuerda” peticiones anteriores.

Para mantener sesiones y estado entre peticiones, se utilizan:

  • Frameworks que gestionan cookies y sesiones
  • Tokens de autenticación
  • Almacenamiento local en el cliente

Redirección de Puertos y Seguridad#

  • Los puertos bajo el 1024 requieren privilegios de administrador
  • Es común usar puertos altos (8080, 8443) para desarrollo
  • En producción, se utilizan proxies inversos para redirigir:
    • Puerto 80 → 8080 (HTTP)
    • Puerto 443 → 8443 (HTTPS)

Glosario de Términos#

  • Cliente-Servidor: Modelo de arquitectura donde el cliente solicita servicios y el servidor los proporciona
  • Puerto: Punto de comunicación virtual en un dispositivo de red
  • RFC (Request for Comments): Documentos que definen estándares y protocolos de internet
  • URI (Uniform Resource Identifier): Identificador único de un recurso (ej: /index.html)
  • URL (Uniform Resource Locator): Dirección específica de un recurso en la web
  • Redirect (Redirección): Mecanismo para enviar a un cliente a una ubicación diferente
  • Framework: Conjunto de herramientas y bibliotecas que facilitan el desarrollo web
  • Proxy: Intermediario entre cliente y servidor que puede modificar peticiones/respuestas
  • Codificación UTF-8: Estándar de codificación de caracteres que soporta múltiples idiomas
  • Logs: Archivos que registran eventos y actividades de un sistema