WSGI

インタフェース定義

WSGIとは?

 状態:-  閲覧数:536  投稿日:2018-08-20  更新日:2018-08-26  

表記


片仮名
・ウィズギー

詳記
・Web Server Gateway Interface

Pythonにおける、「Webサーバ」と「Webアプリケーション」を接続する標準仕様を定めるもの


プログラミング言語Pythonにおいて、「Webサーバ」と「Webアプリケーション(もしくはWebアプリケーションフレームワーク)」を接続するための、標準化されたインタフェース定義

特徴
・WSGIに対応したWebアプリケーション(やフレームワーク)は、WSGIに対応した任意のWebサーバ上で運用できる
・アプリケーション側がWSGIに対応していれば、アプリケーションのコードに修正を加えることなく、WSGI対応サーバを自由に選択することができ、高い可搬性(ポータビリティ)が得られる

仕様の概要

 閲覧数:211 投稿日:2018-08-25 更新日:2018-09-07 

WSGIには二つの側 — サーバ側とアプリケーション側が存在する


WSGIは、リクエスト情報・レスポンスヘッダ・レスポンス本文を、両者の間でどのようにやりとりするかをPythonのAPIとして定義している

WSGIサーバ(WSGIアプリケーションコンテナ)


WSGIアプリケーションを常駐させる
・HTTPクライアントからリクエストを受け取るごとに、WSGIアプリケーションのcallableオブジェクトを呼び出す
→ クライアントからのリクエストがアプリケーションへ転送される

WSGIアプリケーション


callableオブジェクト (__call__が定義されたオブジェクト) として定義する

処理の流れ


1.Webサーバ側が、クライアントからリクエストを受け取る

2.サーバ側は、callableオブジェクトを呼び出して、その引数として環境変数と1つのコールバック用callableオブジェクトを渡す
・Webサーバ側は、アプリケーション側がエントリポイントとして提供するcallableオブジェクト(関数やクラスインスタンスなど __call__ が定義されたオブジェクト)を呼び出して、その引数として環境変数と1つのコールバック用callableオブジェクトを渡す

3.アプリケーション側は、本文を生成するiterableオブジェクトを戻り値として返す
・アプリケーション側は、このコールバック用callableオブジェクトを呼び出すことでステータスコードとレスポンスヘッダをサーバ側に伝え、さらに本文を生成するiterableオブジェクト(イテレータやリストなど)を戻り値として返す

4.サーバ側は、クライアントへのレスポンスを生成
・サーバ側は、これらを用いてクライアントへのレスポンスを生成する

WSGI 互換のWebアプリケーションフレームワーク

 閲覧数:210 投稿日:2018-09-01 更新日:2018-09-12 

WSGIをサポートするWebアプリケーションフレームワーク


Bottle
Django
Flask
Tornado







thinkAmi-sandbox/wsgi_webserver-sample
PythonでWSGI準拠のWebサーバを自作し、その上でBottleを動かしてみた
Pythonで一番小さいWEBフレームワークbottle.py その5(response,mimetype)
Pythonのモジュールとよく使うもの一覧


コメント投稿(ログインが必要)