As ferramentas de linha de comando do núcleo simples, como nc
, socat
, parecem não ser capazes de manipular as coisas HTTP específicas em andamento (trechos, codificações de transferência, etc.). Como resultado, isso pode produzir um comportamento inesperado comparado a falar com um servidor da Web real. Então, meu primeiro pensamento é compartilhar a maneira mais rápida que eu conheço de configurar um minúsculo servidor web e fazê-lo apenas fazer o que você quer: descarregar toda a saída.
O menor que eu poderia usar usando o Python Tornado :
#!/usr/bin/env python
import tornado.ioloop
import tornado.web
import pprint
class MyDumpHandler(tornado.web.RequestHandler):
def post(self):
pprint.pprint(self.request)
pprint.pprint(self.request.body)
if __name__ == "__main__":
tornado.web.Application([(r"/.*", MyDumpHandler),]).listen(8080)
tornado.ioloop.IOLoop.instance().start()
Substitua a linha pprint
para gerar apenas os campos específicos necessários, por exemplo, self.request.body
ou self.request.headers
. No exemplo acima, ele escuta na porta 8080, em todas as interfaces.
Alternativas para isso são muitas. web.py , Frasco , etc.
(sou bastante orientada para Python, desculpe)
Se você não gosta de sua maneira de produzir, apenas execute-o mesmo assim e tente tcpdump
da seguinte forma:
tcpdump -i lo 'tcp[32:4] = 0x484f535420'
para ver um despejo bruto real de todas as solicitações HTTP-POST. Como alternativa, basta executar o Wireshark.