Оригинальный автор(ы) | Тацухико Миягава |
---|---|
Разработчик(и) | Тацухико Миягава, Токухиро Мацуно, Джесси Люэрс, Томас Доран, Грэм Кноп и другие. |
Написано в | Перл |
Лицензия | Лицензия Perl (Artistic License v2 + GNU General Public License v1) |
Веб-сайт | plackperl.org |
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 поддерживает следующие серверные бэкэнды:[обновлять]
Использование автономного 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Привет, мир!