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

Ptz*_*hub 8 logging http httpserver http-headers charles-proxy

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

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

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

实施语言并不重要.

像查尔斯,但HTTP服务器而不是代理

ric*_*ich 19

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

$ nc -l -p 8080
Run Code Online (Sandbox Code Playgroud)

和python的内置:

$ python -m SimpleHTTPServer 8080
Run Code Online (Sandbox Code Playgroud)

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

$ python -m http.server 8080
Run Code Online (Sandbox Code Playgroud)

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

  • 用于nc的正确命令是:nc -l 8080 (4认同)
  • netcat有多个版本,有不同的行为,令人生气.-p标志即使在可选的位置也可以工作. (3认同)
  • 对于 Mac OS X 上的我来说,“nc -l -p <port>”给出了错误,而“nc -l <​​port>”可以工作,但只让 nc 监听单个请求。`nc -k -l <​​port>` 让它继续执行第一个请求。 (3认同)

sha*_*ncs 16

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

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

  1. 安装Node.js.
  2. 安装Express生成器,以便在几秒钟内生成Web应用程序:npm install express-generator -g
  3. 生成Web应用程序并安装所有依赖项:
    express myapp
    cd myapp
    npm install
  1. myapp/app.js在行之前编辑并插入以下代码块app.use('/', index);:
    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应用程序.发送到主机的所有HTTP请求localhost:3000都将记录其标题,cookie和正文.
  2. 如果需要将这些日志写入文件,可以使用记录器模块,例如日志.

  • @JeanPaul docker 更简单:) (2认同)