木曜日 1:30 p.m.–2 p.m.

Room 204 #pyconjp_204

HTTPプロクシライブラリproxy2の設計と実装

inaz2

対象レベル:
中級
カテゴリ:
Useful libraries
スライド:
slide http://www.slideshare.net/inaz2/httpproxy2

説明

Pythonスクリプトで柔軟に拡張可能なHTTP(S)プロクシライブラリproxy2を紹介するとともに、PythonでHTTPプロクシを実装する際に考慮すべき点、HTTPS対応の詳細についてproxy2の実装を交えながら解説する。

概要

HTTP通信の中継を行うHTTPプロクシには、SquidやNginxのようなキャッシュ・ロードバランスを目的としたものと、Burp ProxyやProxomitronのようなデバッグ・コンテンツ書き換えを目的としたものがある。前者は大量のHTTPリクエストを効率的にさばくため、後者はサーバから送られてくるHTTPレスポンスの確認や通信ログの記録、アクセス制限などに用いられる。発表者は、このような多岐にわたるプロクシ機能の実装をPythonスクリプトの形で柔軟に行うことができるHTTP(S)プロクシライブラリ[proxy2](https://github.com/inaz2/proxy2)を開発した。このライブラリを用いることで、開発者は実現したい機能に注力してプロクシサーバを開発することができる。このセッションでは、 * HTTP(S)プロクシによって実現されるさまざまな機能の概要 * proxy2を利用したHTTP(S)プロクシの実装例 * ソケットサーバに関する標準モジュールの概要と使い方 * HTTPプロクシを実装する際に考慮すべき仕様 * HTTPS対応に必要なSSL CA/サーバ証明書の生成と利用方法 について、proxy2における実装を交えながら紹介する。なお、ここでのHTTPはHTTP/1.1を指すものとする。
  • このエントリーをはてなブックマークに追加