Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Arquitectura de la Web Python: Desarrollo web con Flask

Ya sabes programar en Python y entiendes lo básico, así que es momento de mirar qué pasa cuando creamos o visitamos una página web.

Vamos a conocer cómo se comunican el navegador (cliente) y el servidor (el software que entrega el sitio web).

http session

¿Qué es la arquitectura web?

La arquitectura web es como el plano que define la forma en que los sitios web funcionan por dentro. Sin importar el lenguaje o las tecnologías que se usen (como Python, PHP o JavaScript), en el fondo todos los sitios siguen una misma lógica: el navegador pide algo, y el servidor responde.

Lo que permite esta comunicación es un protocolo llamado HTTP.

HTTP (Protocolo de transferencia de hipertexto ) es el sistema que permite que los navegadores y servidores se comuniquen. Cada vez que abres una página web, el navegador hace una solicitud utilizando HTTP, y el servidor responde con el contenido que debe mostrarte.

Veamos los pasos básicos que ocurren cuando visitas una página:

  1. Escribes una dirección en el navegador, por ejemplo: https://ejemplo.com.
  2. El navegador hace una solicitud HTTP al servidor que aloja el sitio.
  3. El servidor procesa la solicitud y responde con el contenido (HTML, imágenes, etc.).
  4. El navegador lee esa respuesta y muestra la página web.
  5. Si haces clic en un enlace, el ciclo comienza otra vez.

Cada ciclo que acabo de describirte se llama una sesión HTTP y siempre tiene dos partes:

  • Una solicitud del navegador (request)
  • Una respuesta del servidor (response)

Herramientas para ver la sesión HTTP

Para observar cómo se ve esta comunicación por dentro, se puede usar una herramienta llamada curl.

curl -v --head https://app.codica.la

Este comando muestra toda la información intercambiada en una sesión real. Si tienes Linux o macOS puedes probarlo directamente desde tu terminal.

Entre otras cosas, verás:

  • A qué servidor te estás conectando
  • Qué protocolo de seguridad se usa (como TLS)
  • La respuesta HTTP que devuelve el servidor (por ejemplo, un código 200 si todo va bien)
  • Los headers (cabeceras) usados en la solicitud y respuesta

¿Y si el sitio necesita comunicación en tiempo real?

La tecnología HTTP funciona muy bien cuando pedimos información y recibimos una respuesta. Pero hay situaciones donde eso no es suficiente, por ejemplo:

  • Chats en tiempo real
  • Juegos multijugador en línea
  • Notificaciones automáticas

Para esos casos se usa otra tecnología llamada WebSocket. Esta permite una conexión permanente entre el navegador y el servidor, lo que hace posible enviar y recibir datos sin tener que repetir el ciclo de solicitud y respuesta constantemente.

💡 WebSocket no reemplaza a HTTP, simplemente lo complementa cuando se necesita.

El mismo principio en todos los lenguajes

Aunque existen muchos lenguajes para hacer sitios —como PHP, Ruby, Python, Java o JavaScript— todos siguen el mismo principio:

  1. Hay una función que recibe una solicitud HTTP.
  2. Esa función analiza qué página se pidió, con qué parámetros, etc.
  3. Luego, genera una respuesta (por ejemplo, una página HTML) y la devuelve al navegador.

Este comportamiento es común en todos los servidores web, y se repite sin importar el lenguaje.

Lenguaje Código de ejemplo
PHP use Slim\Factory\AppFactory;
$app = AppFactory::create();

$app->get('/', function ($request, $response) {
    return $response->write('Welcome to Slim!');
});

$app->run();
Ruby require 'sinatra'
get '/frank-says' do
  'Put this in your pipe & smoke it!'
end
Python from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
  return "Hello World!"
Java import static spark.Spark.*;

public class HelloWorld {
    public static void main(String[] args) {
        get("/hello", (req, res) -> "Hello World");
    }
}
JavaScript import Express from 'express';
const app = new Express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

Como ves, en todos los casos existe una función o bloque que actúa cuando se hace una petición a una ruta específica (como / o /hello), y muestra una respuesta en texto.


Resumen

  • Todos los sitios web modernos funcionan bajo el mismo principio de arquitectura web.
  • HTTP es el protocolo que permite que cliente y servidor intercambien información.
  • Una sesión HTTP siempre contiene un request y un response.
  • Para ver esta comunicación se puede usar herramientas como curl.
  • WebSocket se usa cuando se necesita comunicación en tiempo real (como en chats y juegos), pero no reemplaza a HTTP.
  • Todos los lenguajes siguen la misma lógica: responder solicitudes con contenido, sin importar la tecnología usada.

Ya con esta base, estás más cerca de crear sitios web que se comuniquen como los grandes.


Trabajo independiente

  1. Ejecuta la solicitud curl --head https://app.codica.la. Estudia los encabezados que se envían y los que se reciben.
  2. Abre la consola de desarrollador en el navegador, ve a la pestaña Network (Red) y carga https:///app.codica.la en esa pestaña. Estudia qué solicitudes hace el sitio y con qué encabezados, así como qué respuestas recibe.

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY