web-dev-qa-db-fra.com

Serveur HTTP simple pour les demandes de journalisation uniquement

Je dois exécuter un simple serveur HTTP qui enregistrera uniquement les demandes entrantes et rien.

Il devrait consigner le contenu des demandes entières. Comme les en-têtes, les cookies, le corps ...

J'ai juste besoin d'une solution simple que je peux exécuter en quelques minutes et qui fonctionnera.

Le langage d'implémentation n'est pas important.

Quelque chose comme Charles mais un serveur HTTP au lieu d'un proxy

13
user4230508

Pour certaines alternatives super simples, il y a netcat:

$ nc -l -p 8080

Et le python intégré:

$ python -m SimpleHTTPServer 8080

(Dans les versions récentes de python, 3?) C'est maintenant:

$ python -m http.server 8080

Netcat ne servira pas de réponses, vous ne pourrez donc pas aller trop loin, SimpleHTTPServer ne montrera pas POST requêtes (au moins). Mais parfois, je trouve les deux utiles.

19
rich

Si vous recherchez un serveur HTTP en ligne qui enregistrera les informations de toutes les demandes, vous pouvez utiliser RequestBin .

Si vous devez créer votre propre serveur de journalisation HTTP , Node.js + Express est un bon candidat. C'est très simple et rapide à réaliser:

  1. Installer Node.js
  2. Installez Générateur express pour que l'application web puisse être générée en quelques secondes: npm install express-generator -g
  3. Générez une application Web et installez toutes les dépendances:
 express myapp 
 cd myapp 
 npm install 
  1. Modifiez myapp/app.js Et insérez le bloc de code suivant avant la ligne app.use('/', index);:
 app.use (fonction (req, res) {
 console.log (req.headers); 
 console.log (req.cookies); 
 console .log (req.body); 
 res.send ('OK'); 
}); 
  1. C'est tout. Maintenant, exécutez DEBUG=myapp:* npm start Dans la console et lancez l'application Web. Toutes les demandes HTTP envoyées à l'hôte localhost:3000 Seront enregistrées avec leurs en-têtes, cookies et corps.
  2. Si vous devez écrire ces journaux dans un fichier, un module d'enregistreur peut être utilisé, tel que log .
16
shaochuancs