Comment écrire un serveur proxy http1.0 en c sous linux?

Je dois développer un serveur proxy qui fonctionne uniquement avec HTTP 1.0 sous Linux et par c. J’ai besoin d’un indice pour commencer à développer.

  • Je suppose que vous utilisez Linux et la langue c en toute confiance (aucune astuce pour cela, sinon ne commencez pas par développer un proxy)
  • Lisez et comprenez le RFC 1945 HTTP / 1.0 (faites attention à la mention spécifique de proxy)
  • Déterminez le type de proxy que vous souhaitez (Web / cache / filtre de contenu / anonymiseur / transparent / non transparent / inverse / passerelle / tunnel / …)
  • Commencez à développer le serveur

Étapes de base

  1. Port ouvert
  2. Écoutez sur le port
  3. Récupère toutes les requêtes envoyées par le client à ce port (peut-être rendre le tout multithread pour pouvoir traiter plus d’une requête à la fois)
  4. Déterminer s’il s’agit d’une demande HTTP 1.0 valide
  5. Extraire les composants de la requête
  6. Reconstruisez la demande en fonction de votre type de proxy
  7. Envoyer la nouvelle demande
  8. Obtenez la réponse
  9. Envoyer une réponse au client

Comment créer un serveur proxy:

  1. Ouvrir un port pour écouter
  2. Catch toutes les demandes entrantes sur ce rapport
  3. Déterminer l’adresse Web demandée
  4. Ouvrir une connexion à l’hôte et transférer la demande
  5. Recevoir une réponse
  6. Renvoyer la réponse au client demandeur

En outre: Utilisez des threads pour autoriser plusieurs demandes au serveur.