This is a simple single-host reverse proxy that intercept and save HTTP requests and responses

Overview

HTTP Telescope

Debug HTTP requests using a reverse proxy.

Dashboard screenshot

Description

This is a simple single-host reverse proxy that intercept and save HTTP requests and responses (including plaintext bodies) in memory. It has a minimal web dashboard.

How to build

Clone the repo and issue go build ./cmd/http-telescope or use the docker image enrico204/http-telescope:latest.

Usage

Usage: http-telescope [options] [arguments]

OPTIONS
  --config-path/$CFG_CONFIG_PATH                    
   
        (default: /conf/config.yml)
  --web-listen/$CFG_WEB_LISTEN                      
    
         (default: 0.0.0.0:3001)
  --web-ui/$CFG_WEB_UI                              
     
          (default: 0.0.0.0:3002)
  --web-read-timeout/$CFG_WEB_READ_TIMEOUT          
      
         (default: 5s)
  --web-write-timeout/$CFG_WEB_WRITE_TIMEOUT        
       
         (default: 5s) --web-shutdown-timeout/$CFG_WEB_SHUTDOWN_TIMEOUT 
        
          (default: 5s) --web-upstream/$CFG_WEB_UPSTREAM 
         
           --log-level/$CFG_LOG_LEVEL 
          
            (default: warn) --log-method-name/$CFG_LOG_METHOD_NAME 
           
             (default: false) --log-json/$CFG_LOG_JSON 
            
              (default: false) --log-destination/$CFG_LOG_DESTINATION 
             
               (default: stderr) --log-file/$CFG_LOG_FILE 
              
                (default: /tmp/debug.log) --disable-caching/$CFG_DISABLE_CACHING 
               
                 (default: false) --store-body/$CFG_STORE_BODY 
                
                  (default: false) --help/-h display this help message 
                
               
              
             
            
           
          
         
        
       
      
     
    
   
  • --web-listen/$CFG_WEB_LISTEN is the listen address for the reverse proxy
  • --web-ui/$CFG_WEB_UI is the listen address for the web UI
  • --web-upstream/$CFG_WEB_UPSTREAM is the web upstream
  • --store-body/$CFG_STORE_BODY flag controls whether http-telescope need to capture the body or not. Note that the body is stored only if all of these are true:
    • it's plaintext (e.g., text/*, JSON/XML or URL-form encoded mime types)
    • Content-Length header is available (notably, in HTTP/2 is optional)
    • content length is less than 10KiB

Example usage

http-telescope --web-upstream http://www.myserver.com

License

This project is licensed under the MIT license. See LICENSE file.

You might also like...
An HTTP proxy library for Go

Introduction Package goproxy provides a customizable HTTP proxy library for Go (golang), It supports regular HTTP proxy, HTTPS through CONNECT, and "h

Speak HTTP like a local. (the simple, intuitive HTTP console, golang version)

http-gonsole This is the Go port of the http-console. Speak HTTP like a local Talking to an HTTP server with curl can be fun, but most of the time it'

Simple HTTP package that wraps net/http

Simple HTTP package that wraps net/http

Http-conection - A simple example of how to establish a HTTP connection using Golang

A simple example of how to establish a HTTP connection using Golang

A Go "clone" of the great and famous Requests library

GRequests A Go "clone" of the great and famous Requests library License GRequests is licensed under the Apache License, Version 2.0. See LICENSE for t

Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

fasthttp Fast HTTP implementation for Go. Currently fasthttp is successfully used by VertaMedia in a production serving up to 200K rps from more than

Http client call for golang http api calls

httpclient-call-go This library is used to make http calls to different API services Install Package go get

fhttp is a fork of net/http that provides an array of features pertaining to the fingerprint of the golang http client.

fhttp The f stands for flex. fhttp is a fork of net/http that provides an array of features pertaining to the fingerprint of the golang http client. T

NATS HTTP Round Tripper - This is a Golang http.RoundTripper that uses NATS as a transport.

This is a Golang http.RoundTripper that uses NATS as a transport. Included is a http.RoundTripper for clients, a server that uses normal HTTP Handlers and any existing http handler mux and a Caddy Server transport.

Owner
Enrico
Sysadmin, developer, networking enthusiast. Cybersecurity researcher @ Sapienza (University of Rome) - Mirror of: https://gitlab.com/Enrico204
Enrico
httpreq is an http request library written with Golang to make requests and handle responses easily.

httpreq is an http request library written with Golang to make requests and handle responses easily. Install go get github.com/binalyze/http

Binalyze 56 Feb 10, 2022
Goget will send a http request, and show the request time, status, response, and save response to a file

Goget will send a http request, and show the request time, status, response, and save response to a file

LAZPbanahaker 2 Feb 9, 2022
A Go HTTP client library for creating and sending API requests

Sling Sling is a Go HTTP client library for creating and sending API requests. Slings store HTTP Request properties to simplify sending requests and d

Dalton Hubble 1.5k Jan 7, 2023
Replacement of ApacheBench(ab), support for transactional requests, support for command line and package references to HTTP stress testing tool.

stress stress is an HTTP stress testing tool. Through this tool, you can do a stress test on the HTTP service and get detailed test results. It is ins

Wenjia Xiong 37 Aug 23, 2022
A golang tool which makes http requests and prints the address of the request along with the MD5 hash of the response.

Golang Tool This repository is a golang tool which makes http requests to the external server and prints the address of the request along with the MD5

null 0 Oct 17, 2021
Gourl: Performs (multiple) HTTP requests and gathers stats

Gourl: Performs (multiple) HTTP requests and gathers stats

Maxime Le Conte des Floris 0 Mar 9, 2022
Nap is a file-based framework for automating the execution of config-driven HTTP requests and scripts.

Nap Nap is a file-based framework for automating the execution of config-driven HTTP requests and scripts. Installation Options Using go get $ go inst

Dave Sheldon 14 Nov 17, 2022
go http api to handle phishing resources requests

go http api to handle phishing resources requests (auth check, prometheus metrics, pushing to rabbit, logging to elasticsearch)

Dmitry Karpov 0 Oct 8, 2021
This project aims for printing HTTP requests from outside simply

HTTP Debug Server This project aims for printing HTTP requests from outside simp

John Niang 1 Jan 29, 2022
IceFireDB-Proxy - IceFireDB proxy, easier to use IceFireDB, support resp protocol

IceFireDB-Proxy IceFireDB-Proxy is a high-performance, highly available, and use

IceFireDB 15 Jun 8, 2022