Mar*_*ood 234
从完全后退的角度来看,布兰克曼,这是我的Web服务网关接口的"简介页":
第一部分:WEB服务器
Web服务器提供响应.他们坐在那里,耐心等待,然后一点也没有警告,突然:
Web服务器(至少是更好的服务器)非常非常擅长这一点.他们根据需求进行扩大和缩小处理,他们可靠地与最肮脏的客户进行对话,而不是真正的网络,我们从来没有真正担心它.他们只是继续服务.
这是我的观点:Web服务器只是:服务器.他们对内容一无所知,对用户一无所知,事实上除了如何等待和可靠回复之外什么都没有.
您选择的Web服务器应该反映您的交付偏好,而不是您的软件.您的Web服务器应该负责服务,而不是处理或逻辑内容.
第二部分:(PYTHON)软件
软件不会坐着.软件仅在执行时存在.当涉及到环境中的意外变化(文件不在预期的位置,重命名的参数等)时,软件并不十分容易.虽然优化应该是您设计的核心原则(当然),但软件本身并不优化.开发人员优化.软件执行.软件会在上面的"故意嘟嘟"部分中完成所有内容.可能是什么.
您选择或设计的软件应该反映您的应用程序,您选择的功能,而不是您选择的Web服务器.
这就是传统的"编译"语言到Web服务器的方法变得痛苦的地方.您最终会在应用程序中放置代码以应对物理服务器环境,或者至少被迫选择适当的"包装"库以在运行时包含,以便在Web服务器之间产生一致性的错觉.
什么是WSGI?
那么,最后,什么是WSGI?WSGI是一组规则,分为两部分.它们的编写方式使它们可以集成到任何欢迎集成的环境中.
第一部分是为Web服务器端编写的,"好的,如果你想处理一个WSGI应用程序,这就是软件在加载时的思考方式.以下是你必须为应用程序提供的东西,在这里是你可以期望每个应用程序都具有的接口(布局).此外,如果出现任何问题,这里是应用程序将如何思考以及如何期望它的行为."
第二部分是为Python应用程序软件编写的,"好的,如果你想处理一个WSGI服务器,这就是服务器在与你联系时的想法.以下是你必须提供给服务器的东西,以及这里是你可以期望每个服务器都有的接口(布局).而且,如果出现任何问题,这就是你应该如何表现,这就是你应该告诉服务器的内容."
所以你有它 - 服务器将是服务器,软件将是软件,这是一种他们可以相处得很好的方式,而不必为另一方的细节做出任何限制.这是WSGI.
另一方面,mod_wsgi是Apache的一个插件,它允许它与WSGI兼容的软件进行通信,换句话说,mod_wsgi是一个实现 - 在Apache中 - 是上述规则手册第一部分的规则.
至于CGI ....问别人:-)
Ign*_*ams 59
WSGI在Web服务器启动时运行Python解释器,作为Web服务器进程(嵌入模式)的一部分或作为单独的进程(守护进程模式)运行,并将脚本加载到其中.每个请求都会在调用的脚本中生成一个特定的函数,请求环境作为参数传递给函数.
CGI将脚本作为单独的进程运行每个请求,并使用环境变量,stdin和stdout与其"通信".
Ric*_*man 19
如果你不清楚这个领域的所有术语,让我们面对它,这是一个令人困惑的首字母缩略词,还有一个很好的背景阅读器,形式为官方python HOWTO,讨论CGI与FastCGI对比WSGI等等.上.我希望我先读它.
Woo*_*ble 18
CGI和WSGI都定义了程序可用于处理Web请求的标准接口.CGI接口的级别低于WSGI,并且涉及服务器设置包含来自HTTP请求的数据的环境变量,程序返回的格式非常类似于裸HTTP服务器响应.
另一方面,WSGI是一个特定于Python的稍高级别的接口,它允许程序员编写与服务器无关且可以包装在其他WSGI应用程序(中间件)中的应用程序.
| 归档时间: |
|
| 查看次数: |
21317 次 |
| 最近记录: |