PythonのWSGI

WSGIとはPEP333で定義されており、サーバとWebアプリケーションをつなぐ共通のインターフェースとなっています。
これはPythonにはDjango、Flaskなど様々なWebフレームワークがありますが、過去にフレームワークごとに利用可能なサーバが制限されてしまったりしていたためサーバとアプリケーションの間に共通のインターフェースを作成するということで定義されました。
WSGIに則り作成されたWebアプリケーション(WSGIアプリケーション)はWSGIに則り作成されたサーバ(WSGIサーバ)上で動作します。

代表的なWSGIアプリケーションはDjango、Flaskなどがあります。WSGIサーバにはgunicornなどがあります。

WSGIアプリケーションのシンプルなコード、仕様は以下のようになっています。

def application(environ, start_response):
   start_response('200 OK', [('Content-type', 'text/plain; charset=utf-8')])
   return [b'Hello World']

- environ:HTTPリクエストの情報(ヘッダーなど)
- start_response:主にHTTPレスポンスのヘッダー情報を作成する関数。HTTPレスポンスのコード、返すヘッダーを渡します。
- returnの値としてレスポンスボディをバイトで返す。

一般的なWebフレームワークはこれに加えて、ルーティングやリクエストごとにレスポンス作成する機能、セッション管理など様々なものが追加されています。

この記事が気に入ったらサポートをしてみませんか?