Simple HTTP proxy written in python
Python
Switch branches/tags
Nothing to show
Clone or download
magayengineer
Latest commit 228b84e Dec 12, 2016

README.md

PyProxy

HTTP proxy created in Python

Overview

It is a simple HTTP proxy created in Python. It works with Python 3.x. I thought it would be useful when developing products / applications that use REST API for communication between GUI and web application. In the case of

Recent Web browsers can monitor the communication between the browser and the Web application. But since it is not possible to output the communication contents of HTTP collectively to a file, you can not check the contents of communication at a later time.

PyProxy has the function of outputting the contents of HTTP communication to a file. If you register PyProxy as a Web browser's proxy and connect with the Web application under development, You can easily save the communication contents to a text file.

Also, it is possible to limit HTTP communication contents to be output to a text file by filter function.

HTTPS communication can also be performed via PyProxy, but in the case of HTTPS communication, communication contents are not output to the file. HTTPS communication only tunnels communication.

How to Use

Just execute the command as follows.

python PyProxy.py

Setting file

Config.ini is the configuration file. You can customize PyProxy's behavior by changing the configuration file.

Section Property Discription
network port Port used by Proxy server.
network timeout Proxy server and the timeout for communication between the server, the proxy server and the browser.。
network buff.size The buffer size for receiving data.
output enable Sets whether to output the contents of HTTP communication file. True: Output, False: Do not output
output mode You can choose the format for outputting files. Please specify either simple or full.
output write.mode When outputting a file, you can choose whether to create a new file or append it. W: Create new, a: append
output path The path of the file.
filter enable Sets whether to filter the target of output of HTTP communication contents to a file. True: Filter. False: Do not filter.
filter url Specify the URL to be output to the file with a regular expression.
filter response.content.type Specify the target Content-Type to be output to a file with a regular expression.

PyProxy

Pythonで作成したHTTPプロキシ

概要

Pythonで作成した簡易HTTPプロキシです。Python 3.xで動作します。 GUIとWebアプリケーション間の通信にREST APIを使用するような製品・アプリを開発するときに役に立つと思って作りました。 

最近のWebブラウザではブラウザとWebアプリケーション間の通信をモニタすることができますが、HTTPの通信内容を一括してファイルに出力しておくことができないので、あとで通信の内容を確認することができません。

PyProxyはHTTP通信の内容をファイルに出力する機能を持つため、 PyProxyをWebブラウザのProxyとして登録して、開発中のWebアプリケーションと接続すれば、 通信内容をテキストファイルに簡単に保存しておくことができます。

またフィルタ機能によりテキストファイルに出力するHTTPの通信内容を限定することができます。

なお、PyProxyを通してHTTPS通信もできますが、HTTPS通信の場合、通信内容はファイルに出力されません。HTTPS通信は、通信をトンネルするだけです。

使い方

次のようにコマンドを実行するだけです。

python PyProxy.py

設定ファイル

config.iniが設定ファイルです。 設定ファイルを変更することによりPyProxyの動作をカスタマイズすることができます。

Section Property Discription
network port Proxy serverが使用するポートです。
network timeout Proxy serverとForward先server、Proxy serverとブラウザの間の通信のタイムアウトです。
network buff.size データを受信する際のバッファサイズです。
output enable HTTP通信の内容をファイル出力するかを設定します。True:出力する、False:出力しない
output mode ファイルを出力する際の形式を選べます。simpleとfullのどちらかを指定してください。
output write.mode ファイルを出力する際に、ファイルを新規作成するか追記するかを選べます。w:新規作成、a:追記
output path ファイルのパスです。
filter enable HTTPの通信内容をファイルに出力する対象をフィルタするかを設定します。True:フィルタする。False:フィルタしない。
filter url ファイルに出力する対象とするURLを正規表現で指定します。
filter response.content.type ファイルに出力する対象とするContent-Typeを正規表現で指定します。