LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

Web Server Gateway Interface

Web Server Gateway Interface (WSGI; ウィズギー) は、プログラミング言語Pythonにおいて、WebサーバとWebアプリケーション(もしくはWebアプリケーションフレームワーク)を接続するための、標準化されたインタフェース定義である。また、WSGIから着想を得て、他の言語でも同様のインタフェースが作られた。過去において、Pythonに多種のWebアプリケーションフレームワークが存在することは、PythonでWebアプリケーションを開発しようとする者にとって問題になっていた。というのも、Webアプリケーションフレームワークを選択することによって、使用できるWebサーバが制限されてしまったり、その逆の制限が発生したりしたためである。Pythonで書かれたWebアプリケーションは、FastCGI, mod_python, CGI, さらにはWebサーバ独自のAPIを使ったものなど、様々な方法で実装されていた。この問題を解決するためにWSGIが考案された。WSGIは、Pythonにおける、WebアプリケーションとWebサーバを接続する標準仕様を定めるものであり、これによって、WSGIに対応したWebアプリケーション(やフレームワーク)は、WSGIに対応した任意のWebサーバ上で運用できるようになる。つまり、アプリケーション側がWSGIに対応していれば、アプリケーションのコードに修正を加えることなく、WSGI対応サーバを自由に選択することができ、高い可搬性(ポータビリティ)が得られる。WSGIには二つの側 — サーバ側とアプリケーション側が存在する。WSGIは、リクエスト情報・レスポンスヘッダ・レスポンス本文を、両者の間でどのようにやりとりするかをPythonのAPIとして定義している。Webサーバにリクエストが来ると、次のような流れでやりとりが行なわれる:WSGIはミドルウェアの考え方も提供できる。WSGIミドルウェアは、サーバ側とアプリケーション側のWSGIインタフェースを実装しているため、WSGIサーバとWSGIアプリケーションの"中間に"挿入できる。ミドルウェアはサーバーの視点からはアプリケーションとして振る舞い、アプリケーションの視点からはサーバーとして振る舞う。"ミドルウェア"は、例えば以下のような機能を提供できる:既存のWSGI対応フレームワークを使用する場合は意識する必要はないが、ゼロからWSGIアプリケーションを作る場合は以下の例(Hello Worldアプリケーション)のようにする:解説:WSGIをサポートするWebアプリケーションフレームワークは多数存在する。その一例を示す:WSGIサーバ(WSGIアプリケーションコンテナ)は、WSGIアプリケーションを常駐させ、HTTPクライアントからリクエストを受け取るごとに、WSGIアプリケーションのcallableオブジェクトを呼び出す。これによって、クライアントからのリクエストがアプリケーションに転送される。WSGIアプリケーションコンテナの例としては、uWSGI, Gunicorn, Apacheモジュール (mod_wsgi, mod_pythonなど), Microsoft IIS(isapi-wsgi, PyISAPIe, ASPゲートウェイを使用)などがある。 さらに、WSGIアプリケーションをラップすることで、FastCGIやSCGI環境で動作させることもできるし、古典的なCGIとして動作させることもできる(例えば、Python標準ライブラリに含まれるcodice_7が利用できる)。WSGIから着想を得て、他のプログラミング言語にも同様のインターフェイスが作られた。以下はその一例である。Python 3において文字列とバイト列が分離されたことはWSGIにとって問題となった。HTTPヘッダのデータはテキストとして扱われたりバイナリとして扱われたりするが、WSGIはヘッダデータを文字列として扱っている。Python 2ではテキストもバイナリも「文字列」として扱っていたためこれで問題がなかったが、Python 3ではバイナリはbytes型で扱うことになり、「文字列」とはUnicode文字列のことを表すようになった。この問題に対処した更新版のWSGI仕様は、PEP 3333として公開されている。再考されたWSGI仕様として Web3 というものも提案されており、こちらはPEP 444 として公開されている。Web3は、互換性のないWSGIの派生であり、Python 2.6以降および3.1以降で動作するように設計されている。

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。