PSGI/Plack
PSGI 是 Perl Web Server Gateway Interface Specification 的简称,它的设计灵感源自于 Python 的 WSGI 和 Ruby 的 Rack。更多的情况下它适用于框架开发者,而不是web应用程序开发。
Plack 是对 PSGI SPEC 的一个实现(就好像Apache是http协议的一个实现)。Plack 本身并不是一个框架,它是一个工具,并提供一系列的工具包,其中包含 PSGI 协议的服务器的实现,以及像 plackup、Plack::Test 和中间件组件。
一个更直观的认识是看如下这个图片:

它的意义在于更底层的操作整个 HTTP 流程,而无须在框架里处理。不同的框架如 Catalyst 或 CGI::Application, 都可以使用相同的中间件,只要它们都跑在 PSGI 上。
PSGI 是框架作者的福音,写一个符合 PSGI SPEC 的框架,您无须去写 Engine,Plack 的 Server 有 Standalone、AnyEvent 或者运行在 lighttpd、nginx 或 Apache,您也无须去写一些 Plugins,所有的 Middleware 都可以运用在您的框架之上。
如果您要写一个简单的 server 来运行一个简单的 cgi,你也可以直接写成 psgi 格式,这样您无须 Apache 或其他服务器,使用简单的 Standalone 或 AnyEvent 来运行就可以了。
Plack is a set of tools for Perl programming of Web applications and running frameworks compatible with the PSGI specification, such as Catalyst and Dancer.
Plack was inspired by Rack for Ruby and Paste for Python.
Plackup is a command-line tool for running the PSGI applications,
官方主页:http://www.plackperl.org/
PSGI参考
Plack参考
扶凯的PSGI/Plack 中文汇总
Plack 是对 PSGI SPEC 的一个实现(就好像Apache是http协议的一个实现)。Plack 本身并不是一个框架,它是一个工具,并提供一系列的工具包,其中包含 PSGI 协议的服务器的实现,以及像 plackup、Plack::Test 和中间件组件。
一个更直观的认识是看如下这个图片:

它的意义在于更底层的操作整个 HTTP 流程,而无须在框架里处理。不同的框架如 Catalyst 或 CGI::Application, 都可以使用相同的中间件,只要它们都跑在 PSGI 上。
PSGI 是框架作者的福音,写一个符合 PSGI SPEC 的框架,您无须去写 Engine,Plack 的 Server 有 Standalone、AnyEvent 或者运行在 lighttpd、nginx 或 Apache,您也无须去写一些 Plugins,所有的 Middleware 都可以运用在您的框架之上。
如果您要写一个简单的 server 来运行一个简单的 cgi,你也可以直接写成 psgi 格式,这样您无须 Apache 或其他服务器,使用简单的 Standalone 或 AnyEvent 来运行就可以了。
Plack is a set of tools for Perl programming of Web applications and running frameworks compatible with the PSGI specification, such as Catalyst and Dancer.
Plack was inspired by Rack for Ruby and Paste for Python.
Plackup is a command-line tool for running the PSGI applications,
官方主页:http://www.plackperl.org/
PSGI参考
Plack参考
扶凯的PSGI/Plack 中文汇总