wsgi

wsgi

WSGI是Web Server Gateway Interface的縮寫。以層的角度來看,WSGI所在層的位置低於CGI。但與CGI不同的是WSGI具有很強的伸縮性且能運行於多執行緒或多進程的環境下,這是因為WSGI只是一份標準並沒有定義如何去實現。實際上WSGI並非CGI,因為其位於web應用程式與web伺服器之間,而web伺服器可以是CGI,mod_python(註:現通常使用mod_wsgi代替),FastCGI或者是一個定義了WSGI標準的web伺服器就像python標準庫提供的獨立WSGI伺服器稱為wsgiref。

基本介紹

  • 中文名:wsgi
  • 外文名:wsgi
  • 領域:計算機網路
  • 特點:多執行緒
簡介,特點,歷史,背景,

簡介

PythonWeb伺服器網關接口(Python Web Server Gateway Interface,縮寫為WSGI)是Python應用程式或框架和Web伺服器之間的一種接口,已經被廣泛接受, 它已基本達成它的可移植性方面的目標。
WSGI 沒有官方的實現, 因為WSGI更像一個協定. 只要遵照這些協定,WSGI套用(Application)都可以在任何伺服器(Server)上運行, 反之亦然。
WSGI標準在 PEP 333 中定義並被許多框架實現,其中包括現廣泛使用的django框架。

特點

Python Paste - WSGI底層工具集. 包括多執行緒, SSL和 基於Cookies, sessions等的驗證(authentication)庫. 可以用Paste方便地搭建自己的Web框架。
WSGI:Python Web Server Gateway Interface v1.0
它是 PEP3333中定義的(PEP3333的目標建立一個簡單的普遍適用的伺服器與Web框架之間的接口)
WSGI是Python應用程式或框架和Web伺服器之間的一種接口
WSGI被廣泛接受, 已基本達成它了可移植性方面的目標
在Guido的 Blog 中反覆提及, 個人認為WSGI是Python Web方面最Pythonic的
類似於Java中的"servlet" API。

歷史

自從WSGI被開發出來以後,許多其它語言中也出現了類似接口。
2003年: 原初的Python版本
2007年: Rack,Ruby版本
2008年: Lua WSAPI,Lua版本
2009年: JSGI,Java版本
2009年: PSGI,Perl版本

背景

以前,如何選擇合適的Web應用程式框架成為困擾Python初學者的一個問題,這是因為,一般而言,Web套用框架的選擇將限制可用的Web伺服器的選擇,反之亦然。那時的Python應用程式通常是為CGI,FastCGI,mod_python中的一個而設計,甚至是為特定Web伺服器的自定義的API接口而設計的。
WSGI是作為Web伺服器與Web應用程式或套用框架之間的一種低級別的接口,以提升可移植Web套用開發的共同點。WSGI是基於現存的[[CGI]]標準而設計的。

相關詞條

熱門詞條

聯絡我們