Ha sido un viaje largo, pero hemos llegado al final del libro. En este capítulo, crearemos un proyecto más juntos para demostrar algunos de los conceptos que cubrimos en los capítulos finales, así como recapitular algunas lecciones anteriores.

Para nuestro proyecto final, crearemos un servidor web que dice “hola” y se parece a la Figura 20-1 en un navegador web.

hola desde el óxido

Figura 20-1: Nuestro proyecto final compartido

Aquí está el plan para construir el servidor web:

  1. Aprenda un poco sobre TCP y HTTP.
  2. Escuche las conexiones TCP en un socket.
  3. Analice una pequeña cantidad de solicitudes HTTP.
  4. Cree una respuesta HTTP adecuada.
  5. Mejore el rendimiento de nuestro servidor con un grupo de subprocesos.

Pero antes de comenzar, debemos mencionar un detalle: el método que usaremos no será la mejor manera de construir un servidor web con Rust. Varias cajas listas para producción están disponibles en crates.io que proporcionan implementaciones de servidores web y grupos de subprocesos más completas que las que crearemos.

Sin embargo, nuestra intención en este capítulo es ayudarlo a aprender, no tomar el camino fácil. Debido a que Rust es un lenguaje de programación de sistemas, podemos elegir el nivel de abstracción con el que queremos trabajar y podemos ir a un nivel más bajo de lo que es posible o práctico en otros lenguajes. Escribiremos el servidor HTTP básico y el grupo de subprocesos manualmente para que pueda aprender las ideas y técnicas generales detrás de las cajas que podría usar en el futuro.