2009-11-15 6 views

Répondre

19
  • Je suppose que vous êtes confiant dans l'utilisation de Linux et la langue c (aucune indication pour que, d'autre ne commence pas par le développement d'un proxy)
  • Lire et comprendre les RFC 1945 HTTP/1.0 (attention à la mention spécifique de proxy)
  • déterminer quel type de proxy que vous voulez (web/cache/filtre de contenu/anonymisation/transparent/non transparent/arrière/passerelle/tunnel/...)
  • Commencer à développer le serveur

Basi c étapes

  1. Ouvrir le port
  2. Ecouter sur le port
  3. Obtenez toutes les demandes envoyées par le client à ce port (peut-être faire la chose multithread pour être en mesure de traiter plus de 1 demande à la fois)
  4. déterminer si elle est un HTTP valide 1.0 demande
  5. Extrait les composants de demande
  6. Reconstruire la demande en fonction de ce type de proxy que vous êtes
  7. Envoyer la nouvelle demande
  8. Obtenez la réponse
  9. Envoyer la réponse au client
+2

+1 pour être tolérant et au moins essayer de fournir une réponse utile. –

+0

"Envoyer la réponse au client" comment? avec une table? Quelles informations doivent être sauvegardées? – SjB

+0

la réponse est quel que soit le site Web retourné au proxy après avoir accepté la requête http (devrait être le html de la page web ou un message du serveur). – svarog

6

Comment créer un serveur proxy:

  1. Ouvrir un port pour écouter sur
  2. Catch toutes les demandes entrantes sur ce rapport
  3. Déterminer l'adresse Web demandée
  4. Ouvrir une connexion à l'hôte Envoyer la réponse au client demandeur

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

+0

pour une meilleure performance (ou si vous voulez un certain défi) essayez d'utiliser un threadpool au lieu d'un tas de fils http: // fr .wikipedia.org/wiki/Thread_pool_pattern – svarog

Questions connexes