简单HTTP服务器仅用于记录请求

时间:2017-05-16 16:15:17

标签: http logging http-headers httpserver charles-proxy

我需要运行一个只会记录传入请求的简单HTTP服务器。

它应该记录整个请求'内容。像标题,饼干,身体....

我需要一个简单的解决方案,我可以在几分钟内运行并且可以工作。

实施语言并不重要。

像Charles这样的东西,而不是HTTP服务器而不是代理

2 个答案:

答案 0 :(得分:16)

对于一些超级简单的替代品,有netcat:

$ nc -l -p 8080

和python的内置:

$ python -m SimpleHTTPServer 8080

(在最新版本的python中,3?)现在是:

$ python -m http.server 8080

Netcat不会提供响应,因此您可能不会太过分,SimpleHTTPServer将不会显示POST请求(至少)。但偶尔我发现它们都很有用。

答案 1 :(得分:12)

如果您正在寻找能够记录所有请求的在线HTTP服务器'信息,您可以使用RequestBin

如果您需要创建自己的HTTP 日志记录服务器,Node.js + Express是一个不错的选择。制作起来非常简单快捷:

  1. 安装Node.js
  2. 安装Express generator,以便可以在几秒钟内生成Web应用程序:npm install express-generator -g
  3. 生成Web应用程序并安装所有依赖项:
  4.     express myapp
        cd myapp
        npm install
    
    1. 修改myapp/app.js并在第app.use('/', index);行之前插入以下代码块:
    2.     app.use(function(req, res) {
            console.log(req.headers);
            console.log(req.cookies);
            console.log(req.body);
            res.send('OK');
          });
      
      1. 那就是它。现在在控制台中运行DEBUG=myapp:* npm start并启动Web应用程序。发送给主机localhost:3000的所有HTTP请求都将记录其标题,Cookie和正文。
      2. 如果您需要将这些日志写入文件,可以使用记录器模块,例如log