Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Пример серверного скриптинга с использованием Perl, Plack и PSGI.

Plack является Perl основы программирования веб - приложений , вдохновленный Rack для Руби и WSGI для Python , [1] [2] , и это проект за PSGI спецификации , используемой другими системами , такими как Catalyst и Dancer . [3] Plack позволяет тестировать веб-приложения Perl без реального веб-сервера. [4]

Plackup - это утилита командной строки для запуска приложений PSGI из командной строки. [5]

PSGI [ править ]

PSGI или Perl Web Server Gateway Interface - это интерфейс между веб-серверами и веб-приложениями и фреймворками, написанными на языке программирования Perl, который позволяет писать переносимые приложения, которые могут работать как автономные серверы или с использованием CGI , FastCGI , mod_perl и др. [6] Он основан на интерфейсе шлюза веб-сервера для Python , Rack для Ruby и JSGI для JavaScript . Приложение PSGI - это Perlподпрограмма, которая принимает аргументы как одну хеш- ссылку и возвращает ссылку на массив из трех элементов: код состояния HTTP , ссылку на массив заголовков HTTP и ссылку на массив строк тела HTTP (обычно сгенерированный документ HTML ) или указатель_на_файл -как объект .

Поддерживаемые серверные ВМ [ править ]

По состоянию на март 2010 года [7] Plack поддерживает следующие серверные части:

  • CGI
  • SCGI
  • FastCGI
  • mod_perl под Apache 1.3 и 2.0
  • Автономный HTTP-сервер, включенный в Plack
  • HTTP :: Сервер :: Простой
  • Корона
  • Звездный человек
  • Твигги
  • AnyEvent :: HTTPD
  • AnyEvent :: ReverseHTTP

Примеры [ править ]

Использование автономного HTTP-сервера по умолчанию:

$ plackup app.psgi HTTP :: Server :: PSGI: прием соединений по адресу http: // 0: 5000 /

Запускается как демон FastCGI , прослушивающий сокет Unix , готовый к использованию любым веб-сервером с поддержкой FastCGI :

$ plackup -s FCGI -listen /tmp/fcgi.sock app.psgi FastCGI: manager (pid 3336): инициализирован FastCGI: manager (pid 3336): server (pid 3337) запущен FastCGI: server (pid 3337): initialized

Рабочее приложение Hello world, запускаемое как однострочное :

$ plackup -e 'sub {[200, ["Content-Type" => "text / plain"], ["Hello, world!"]]}' HTTP :: Server :: PSGI: прием подключений по http: / / 0: 5000 /

Приведенная выше команда запускает HTTP-сервер, прослушивающий порт 5000 каждого локального интерфейса ( IP-адреса ), и возвращает этот ответ 200 OK на каждый HTTP-запрос :

HTTP / 1.0  200  OK Дата :  Пт, 19 марта 2010 г. 23:34:10 GMT Сервер :  HTTP :: Server :: PSGI Content-Type :  text / plain Content-Length :  13Привет, мир!

Ссылки [ править ]

  1. ^ По, Кертис (2012). Начиная с Perl . Джон Вили и сыновья. п. 484. ISBN 9781118235638. Проверено 29 октября 2018 года .
  2. ^ http://plackperl.org
  3. Перейти ↑ Quigley, Ellie (2014). Perl на примере . Pearson Education. п. 586. ISBN. 9780133760811. Проверено 29 октября 2018 года .
  4. ^ Хроматический (2015). Современный Perl (Четвертое изд.). ООО "Прагматичные программисты". п. 134. ISBN 978-1-68050-088-2.
  5. ^ "plackup - search.cpan.org" . search.cpan.org . Проверено 20 февраля +2016 .
  6. ^ хроматический. «Разработка веб-приложений с использованием современного Perl» . modernperlbooks.com .
  7. ^ Plack :: Модули обработчиков на CPAN

Внешние ссылки [ править ]

  • Сайт PSGI и Plack
  • Документация Plack
  • plackup руководство