跳轉到內容

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
華夏公益教科書