Saltar al contenido
Volver al catálogo
Proyecto http-serverRedesIntermedioPróximamente

Construye tu propio servidor HTTP

Construye un servidor HTTP desde cero. Analiza peticiones desde los bytes del socket, gestiona conexiones y atiende tráfico concurrente con respuestas HTTP.

Constrúyelo en tu lenguaje

El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.

Idioma del temario

Las guías de las etapas se leen en este idioma. Solo aparecen los idiomas en los que este proyecto ya está traducido completo; el idioma de la interfaz no cambia.

De qué trata este proyecto

Proyecto en preparación: estamos completando y verificando el recorrido de implementación y sus pruebas. Las capacidades descritas son el objetivo del proyecto; todavía no está habilitado para comenzar.

Usas frameworks web todos los días, pero debajo de todos ellos hay lo mismo: un socket TCP escuchando y un protocolo de texto que cabe en una hoja. Este reto quita el framework de en medio.

Empiezas abriendo un socket a mano y terminas con un servidor que parsea peticiones reales, sirve ficheros, entiende cabeceras y atiende a varios clientes a la vez sin bloquearse. Lo probarás con curl y con tu navegador.

Hoja de ruta

10 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.

  1. Fase 12 etapas

    Hablar TCP

    Abre un socket, acepta una conexión y devuelve un 200 escrito a mano.

  2. Fase 23 etapas

    Parsear HTTP de verdad

    Línea de petición, cabeceras, cuerpo y respuestas de error bien formadas.

  3. Fase 33 etapas

    Servir contenido

    Enrutado por path, ficheros estáticos, Content-Type y manejo de POST.

  4. Fase 42 etapas

    Aguantar carga

    Concurrencia, keep-alive y timeouts para no caerse con varios clientes.

Antes de empezar

Un servidor HTTP/1.1 escrito sobre sockets TCP: acepta conexiones, parsea la línea de petición y las cabeceras, enruta por path, sirve ficheros estáticos con su Content-Type, responde a POST con cuerpo, mantiene conexiones keep-alive y atiende peticiones concurrentes.

  • mcp-server
    Beta

    Construye tu propio servidor MCP

    Construye un servidor MCP desde cero. Implementa Model Context Protocol con JSON-RPC, herramientas y recursos para conectar clientes de IA con tus programas.

    Intermedio5 etapas~12 hRedes
    MCPJSON-RPCagentes+1

    TypeScript · Python · Go

  • bittorrent
    Próximamente

    Construye tu propio cliente BitTorrent

    Construye un cliente BitTorrent desde cero. Decodifica bencode, consulta trackers y descarga un archivo real con el protocolo peer-to-peer.

    Avanzado12 etapas~20 hRedes
    bencodeP2Pprotocolos+1

    Go · Python · Java

  • dns-resolver
    Próximamente

    Construye tu propio resolvedor DNS

    Construye un resolvedor DNS desde cero. Codifica y analiza paquetes UDP, y resuelve nombres recorriendo la jerarquía desde los servidores raíz.

    Intermedio8 etapas~9 hRedes
    UDPbinarioprotocolos

    Go · Rust · Python