All Projects → bouncestorage → Chaos Http Proxy

bouncestorage / Chaos Http Proxy

Licence: apache-2.0
Introduce failures into HTTP requests via a proxy server

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Chaos Http Proxy

James
Web Debugging Proxy Application
Stars: ✭ 1,299 (+914.84%)
Mutual labels:  http-proxy
V2ray Core
A platform for building proxies to bypass network restrictions.
Stars: ✭ 38,782 (+30198.44%)
Mutual labels:  http-proxy
Goproxy
🔥 Proxy is a high performance HTTP(S) proxies, SOCKS5 proxies,WEBSOCKET, TCP, UDP proxy server implemented by golang. Now, it supports chain-style proxies,nat forwarding in different lan,TCP/UDP port forwarding, SSH forwarding.Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。
Stars: ✭ 11,334 (+8754.69%)
Mutual labels:  http-proxy
Httptoolkit Ui
The UI of HTTP Toolkit
Stars: ✭ 91 (-28.91%)
Mutual labels:  http-proxy
Wg Chaoseng
Chaos Engineering Working Group
Stars: ✭ 99 (-22.66%)
Mutual labels:  chaos
Httpproxy
Go HTTP proxy server library
Stars: ✭ 110 (-14.06%)
Mutual labels:  http-proxy
Pangolin
轻量级内网穿透工具, 基于Java8,netty4.x实现,开箱即用,可转发基于TCP的应用层数据流,例如HTTP/HTTPS,SSH
Stars: ✭ 84 (-34.37%)
Mutual labels:  http-proxy
Qtnetworkng
QtNetwork Next Generation. A coroutine based network framework for Qt/C++, with more simpler API than boost::asio.
Stars: ✭ 125 (-2.34%)
Mutual labels:  http-proxy
Httpproxy
http代理,支持CONNECT和普通GET/POST,支持http2;可防止主动嗅探;可作为小火箭、圈、surge等软件和SwitchyOmega(chrome插件)所说的https代理
Stars: ✭ 104 (-18.75%)
Mutual labels:  http-proxy
Glider
glider is a forward proxy with multiple protocols support, and also a dns/dhcp server with ipset management features(like dnsmasq).
Stars: ✭ 1,710 (+1235.94%)
Mutual labels:  http-proxy
Nitmproxy
Proxy server based on netty
Stars: ✭ 94 (-26.56%)
Mutual labels:  http-proxy
Sozu
Sōzu HTTP reverse proxy, configurable at runtime, fast and safe, built in Rust. It is awesome! Ping us on gitter to know more
Stars: ✭ 1,341 (+947.66%)
Mutual labels:  http-proxy
Microproxy
Lightweight non-caching HTTP(S) proxy server
Stars: ✭ 112 (-12.5%)
Mutual labels:  http-proxy
Trickster
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator
Stars: ✭ 1,306 (+920.31%)
Mutual labels:  http-proxy
Httpproxy
基于 Go 开发,支持 http/1.1 以上版本的 HTTP(S) 代理。(Why not try out Mika?)
Stars: ✭ 120 (-6.25%)
Mutual labels:  http-proxy
Proxy.py
⚡⚡⚡Fast, Lightweight, Pluggable, TLS interception capable proxy server focused on Network monitoring, controls & Application development, testing, debugging
Stars: ✭ 1,291 (+908.59%)
Mutual labels:  http-proxy
Frp
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Stars: ✭ 51,746 (+40326.56%)
Mutual labels:  http-proxy
Hapttic
⏩ Hapttic is a simple HTTP server that forwards all requests to a shell script.
Stars: ✭ 128 (+0%)
Mutual labels:  http-proxy
Flynet
A powerful TCP/UDP tool, which support socks5 proxy by tcp and udp, http proxy and NAT traversal. This tool can help you bypass gfw easily
Stars: ✭ 124 (-3.12%)
Mutual labels:  http-proxy
Gus Proxy
"打一枪换一个地方" 一个HTTP代理
Stars: ✭ 113 (-11.72%)
Mutual labels:  http-proxy

Chaos HTTP Proxy

Introduce failures into HTTP requests via a proxy server. This can uncover error handling bugs in HTTP clients. Andrew Gaul at Bounce Storage [email protected] originally wrote Chaos HTTP Proxy.

Features

Chaos HTTP Proxy can trigger many different failures:

  • change case of HTTP header name
  • Content-MD5 request corruption
  • Content-MD5 response corruption
  • client timeout, HTTP 408
  • redirects (temporary and permanent)
  • reorder response headers
  • server connection break, i.e., short read and write
  • server errors: HTTP 500, 503, and 504
  • server timeout

Installation

Users can download releases from GitHub. One can also build the project by running mvn package which produces a binary at target/chaos-http-proxy. Chaos HTTP Proxy requires Java 7 to run.

Examples

Linux and Mac OS X users can run Chaos HTTP Proxy via the executable jar:

chmod +x chaos-http-proxy
chaos-http-proxy --properties chaos-http-proxy.conf

Windows users must explicitly invoke java:

java -jar chaos-http-proxy --properties chaos-http-proxy.conf

An example using curl:

curl --fail --proxy http://localhost:1080/ http://google.com/
curl: (22) The requested URL returned error: 500 Server Error

Configuring Failure Rates

The configuration file determines all possible results for an HTTP request. Entries take the form [response_type]=[n], where [n] is an integral value that determines the relative occurrence likelihood of each response type. For example, the following configuration gives a 1% chance of responses failing with a 500 Internal Error response:

com.bouncestorage.chaoshttpproxy.http_500=1
com.bouncestorage.chaoshttpproxy.success=99

Sample configuration

Chaos HTTP Proxy accepts configuration at invocation time via the --properties flag and at run-time via the /chaos/api endpoint:

curl --request POST --upload-file chaos-http-proxy.conf http://localhost:1080/chaos/api
curl http://localhost:1080/chaos/api
com.bouncestorage.chaoshttpproxy.success=100

Limitations

  • lacks HTTP authentication
  • lacks HTTPS support

References

  • Charles Web Debugging Proxy - allows interactive modification of HTTP requests and responses
  • Chaos Monkey - inspiration for Chaos HTTP Proxy
  • Hamms - designed to elicit failures in your HTTP Client, similar to httpbin
  • httpbin - HTTP Request & Response Service which can deterministically exercise HTTP functionality
  • pathod - programmable HTTP server
  • toxiproxy - A proxy to simulate network and system conditions
  • toxy - Hackable HTTP proxy to simulate server failure scenarios and unexpected network conditions
  • Vaurien - Chaos TCP Proxy

License

Copyright (C) 2015-2016 Bounce Storage

Licensed under the Apache License, Version 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].