Explicación de WebSockets, HTTP y Web Services
1. WebSockets: Comunicación en Tiempo Real
¿Qué son los WebSockets?
Los WebSockets permiten la comunicación bidireccional y en tiempo real entre un
cliente (como un navegador) y un servidor. A diferencia de HTTP, que envía una petición y
espera una respuesta, con WebSockets el servidor puede enviar información en cualquier
momento sin que el cliente lo pida.
Ejemplo de la vida real:
Piensa en una conversación de WhatsApp. En una conversación normal con HTTP,
tendrías que actualizar la página cada vez que quieras ver un mensaje nuevo. Con
WebSockets, los mensajes aparecen automáticamente sin necesidad de refrescar.
Ejemplo técnico:
1. Un usuario abre una página web con un chat en vivo.
2. Se establece una conexión WebSocket entre el navegador y el servidor.
3. Cuando alguien envía un mensaje, el servidor lo transmite inmediatamente a
todos los usuarios conectados.
Código de ejemplo en JavaScript:
Cliente (Navegador):
var socket = new WebSocket("ws://example.com/chat");
socket.onmessage = function(event) {
console.log("Mensaje recibido: " + event.data);
};
socket.send("¡Hola servidor!");
Servidor (Node.js con la librería ws):
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', ws => {
ws.on('message', message => {
console.log(`Mensaje recibido: ${message}`);
ws.send("Mensaje recibido en el servidor.");
});
});
Usos comunes de WebSockets:
• Juegos en línea
• Chats en vivo
• Bolsa de valores (actualización de precios en tiempo real)
• Edición colaborativa de documentos (Google Docs)
2. Capa de Aplicación y Servicios de Internet (HTTP)
¿Qué es HTTP y la capa de aplicación?
HTTP (HyperText Transfer Protocol) es el protocolo que usamos para navegar en Internet.
Cada vez que visitas una página web, tu navegador envía una petición HTTP a un servidor,
y este responde con la página solicitada.
Ejemplo de la vida real:
Piensa en un restaurante:
• Tú (cliente) pides un platillo al mesero (servidor).
• El mesero va a la cocina y regresa con tu comida.
• Si quieres otra cosa, debes pedirla de nuevo.
Ejemplo técnico:
Cuando abres https://www.google.com, tu navegador envía esta petición:
GET / HTTP/1.1
Host: www.google.com
Y el servidor responde con la página web de Google.
Tipos de peticiones HTTP:
• GET: Obtener datos (ej. una página web).
• POST: Enviar datos al servidor (ej. cuando llenas un formulario).
• PUT: Actualizar un recurso (ej. cambiar tu foto de perfil).
• DELETE: Eliminar un recurso (ej. borrar una publicación en redes sociales).
Ejemplo en código (Usando Python y la librería requests):
import requests
# Hacer una petición GET a una API
response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
# Mostrar la respuesta del servidor
print(response.json())
3. Web Services: Comunicación entre Aplicaciones
¿Qué son los Web Services?
Son una forma de que dos aplicaciones diferentes se comuniquen a través de Internet.
En lugar de devolver páginas web, los Web Services devuelven datos en formatos como
JSON o XML.
Ejemplo de la vida real:
Imagina que tienes una app de viajes que necesita consultar vuelos disponibles. En lugar
de ir manualmente a la página de cada aerolínea, la app puede conectarse a un Web
Service que proporciona esa información automáticamente.
Tipos de Web Services:
1. RESTful Web Services (los más comunes)
o Usa HTTP y devuelve respuestas en JSON.
o Cada recurso tiene una URL (Ejemplo:
https://api.clima.com/ciudad/madrid).
o Métodos HTTP: GET, POST, PUT, DELETE.
2. SOAP Web Services (más antiguos y pesados)
o Usa XML en lugar de JSON.
o Más seguro pero más complicado.
Ejemplo en código (REST API con Flask en Python):
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/saludo', methods=['GET'])
def saludo():
return jsonify({"mensaje": "¡Hola desde el servidor!"})
if __name__ == '__main__':
app.run(port=5000)
Ahora, si visitamos http://localhost:5000/api/saludo, obtendremos:
{"mensaje": "¡Hola desde el servidor!"}
Resumen General
Tecnología Propósito Ejemplo de uso Ventaja principal
Comunicación en Chat en vivo, juegos Conexión bidireccional
WebSockets
tiempo real online instantánea
HTTP (Capa de Peticiones de datos Ver páginas web, Simplicidad y
Aplicación) en la web enviar formularios compatibilidad universal
Comunicación entre API de clima, pagos Estandarización e
Web Services
aplicaciones en línea integración fácil
Conclusión y Diferencias Principales
HTTP (Servicios de
Característica WebSockets Web Services
Internet)
Comunicación en tiempo Transferencia de Comunicación entre
Función
real documentos y archivos aplicaciones
Nueva conexión por
Conexión Permanente (TCP) Basado en HTTP
cada request
Bidireccional (ambos Petición-Respuesta
Tipo de Peticiones de datos
pueden enviar datos en (cliente solicita,
Mensajes o servicios
cualquier momento) servidor responde)
Web, correo, APIs para
Juegos en línea, chats,
Uso Común transferencias de comunicación entre
edición colaborativa
archivos sistemas