Плак (программное обеспечение)

Плак
Оригинальный автор(ы)Тацухико Миягава
Разработчик(и)Тацухико Миягава, Токухиро Мацуно, Джесси Люэрс, Томас Доран, Грэм Кноп и другие.
Написано вПерл
ЛицензияЛицензия Perl (Artistic License v2 + GNU General Public License v1)
Веб-сайтplackperl.org
Пример серверного скриптинга с использованием Perl, Plack и PSGI.

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

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

ПСГИ

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

Поддерживаемые бэкэнды

По состоянию на май 2023 года [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: менеджер (pid 3336): инициализирован FastCGI: менеджер (pid 3336): сервер (pid 3337) запущен FastCGI: сервер (pid 3337): инициализирован

Рабочее приложение 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 Тип содержимого :  text/plain Длина содержимого :  13Привет, мир!

Ссылки

  1. ^ Poe, Curtis (2012). Beginning Perl. John Wiley & Sons. стр. 484. ISBN 9781118235638. Получено 29 октября 2018 г.
  2. ^ "PSGI/Plack - Perl Superglue для веб-фреймворков и веб-серверов". plackperl.org . Получено 9 сентября 2023 г. .
  3. ^ Куигли, Элли (2014). Perl на примере. Pearson Education. стр. 586. ISBN 9780133760811. Получено 29 октября 2018 г.
  4. ^ Chromatic (2015). Modern Perl (Четвертое изд.). The Pragmatic Programmers, LLC. стр. 134. ISBN 978-1-68050-088-2.
  5. ^ "Placup - Metacpan.org" . Metacpan.org . Проверено 30 мая 2023 г.
  6. ^ chromatic. "Разработка веб-приложений с использованием современного Perl". modernperlbooks.com .
  7. ^ Модули Plack::Handler на CPAN
  • Сайт PSGI и Plack
  • Документация по табличке
  • руководство по сборке

Взято с "https://en.wikipedia.org/w/index.php?title=Plack_(software)&oldid=1218804874#PSGI"