応募トーク

これは応募されたトークです。聞きたいと思うトークをSNSで拡散しましょう。選考時に参考にさせていただきます。

talk

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

スピーカー

inaz2

対象レベル:

中級

カテゴリ:

Useful libraries

説明

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

目的

HTTPプロクシの仕組み、ソケットサーバに関する標準クラスの概要と使い方、SSL CA/サーバ証明書の生成とHTTPSサーバの実装方法について理解を深める。

概要

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を指すものとする。
  • このエントリーをはてなブックマークに追加