跳转到内容

Perl 编程/PSGI

来自维基教科书,开放的书籍,为开放的世界
前一篇:HTTP::Engine 索引 后一篇:Unicode UTF-8

PSGI 是 Perl Web 应用程序和 Web 服务器之间的接口。PSGI 的灵感来自 Python 的 WSGI 和 Ruby 的 Rack。该规范在 YAPC::Asia 2009 中进行了讨论,参考实现Plack 由宫川龙彦开发。

PSGI 的概念可以描述为“一切的中层”。它扩展并增强了旧的 CGI 标准,使得基于相同 PSGI 层的 Web 应用程序可以共享某些公共数据,例如 http 身份验证、数据库连接句柄和会话。虽然这些在过去几年中可能被实现为 Apache 模块,但 PSGI 规范使为所有应用程序和所有前端服务器开发中间件变得可能且容易。

PSGI 的核心规范非常简单。一个 PSGI 应用程序是一个 Perl 子程序,它只接受一个参数,即环境,并返回一个包含三个值的数组引用。状态代码、响应头和响应体。以下是一个“Hello World” PSGI 应用程序的示例

 sub app {
     my $env = shift;
     return [
         '200',
         [ 'Content-Type' => 'text/plain' ],
         [ "Hello World" ]
     ];
 }

$env是一个包含环境变量的哈希引用。它包括%ENV哈希中的值,但内部还有更多 PSGI 特定的值。编写基于 PSGI 的 Web 应用程序的开发人员不应该直接访问%ENV哈希。


前一篇:HTTP::Engine 索引 后一篇:Unicode UTF-8
华夏公益教科书