Projet final : construire un serveur web multitâches

Ce fut un long voyage, mais nous avons atteint la fin de ce livre. Dans ce chapitre, nous allons construire un nouveau projet ensemble pour mettre en application certains concepts que nous avons vus dans les derniers chapitres, et aussi pour récapituler quelques leçons précédentes.

Pour notre projet final, nous allons construire un serveur web qui dit “salutations” et qui ressemble dans un navigateur web à l'illustration 20-1.

bonjour de la part de Rust

Illustration 20-1 : notre dernier projet en commun

Voici le plan de construction du serveur web :

  1. En savoir plus sur TCP et HTTP.
  2. Ecouter les connections TCP sur un port.
  3. Interpréter une petite quantité de requêtes HTTP.
  4. Créer une réponse HTTP adéquate.
  5. Augmenter le débit de notre serveur avec un groupe de tâches.

Mais avant de commencer, nous devons signaler une chose : les méthodes que nous allons utiliser ne sont pas les meilleures pour construire un serveur web avec Rust. Un certain nombre de crates éprouvées en production et disponibles sur crates.io fourniront des serveurs web et des implémentations de groupe de tâches plus complets que ce que nous allons construire.

Toutefois, notre intention dans ce chapitre est de vous aider à apprendre, et ne pas de se laisser aller à la facilité. Comme Rust est un langage de programmation système, nous pouvons choisir le niveau d'abstraction avec lequel nous souhaitons travailler et nous pouvons descendre à un niveau plus bas que ce qui est possible ou pratique dans d'autres langages. Nous allons écrire manuellement le serveur HTTP basique et le groupe de tâches afin que vous puissiez apprendre les idées et techniques générales qui se cachent derrière les crates que vous serez peut-être amenés à utiliser à l'avenir.