Plack es un marco de programación de aplicaciones web Perl inspirado en Rack para Ruby y WSGI para Python , [1] [2] y es el proyecto detrás de la especificación PSGI utilizada por otros marcos como Catalyst y Dancer . [3] Plack permite probar aplicaciones web Perl sin un servidor web en vivo. [4]
Plackup es una utilidad de línea de comandos para ejecutar aplicaciones PSGI desde la línea de comandos. [5]
PSGI o Perl Web Server Gateway Interface es una interfaz entre servidores web y aplicaciones web y frameworks escritos en el lenguaje de programación Perl que permite escribir aplicaciones portables que pueden ejecutarse como servidores independientes o usando CGI , FastCGI , mod_perl , et al. [6] Está inspirado en la Web Server Gateway Interface para Python , Rack para Ruby y JSGI para JavaScript . Una aplicación PSGI es una subrutina de Perl que acepta argumentos como una única referencia hash y devuelve una referencia a una matriz de tres elementos: un código de estado HTTP , una referencia a una matriz de encabezados HTTP y una referencia a una matriz de líneas de cuerpo HTTP (normalmente un documento HTML generado ) o un objeto tipo identificador de archivo .
A partir de mayo de 2023 [7] Plack admite los siguientes backends de servidor:[actualizar]
Usando el servidor HTTP independiente predeterminado:
$ plackup app.psgi HTTP::Server::PSGI: Aceptando conexiones en http://0:5000/
Se ejecuta como un demonio FastCGI que escucha en un socket Unix , listo para ser utilizado por cualquier servidor web con soporte FastCGI :
$ plackup -s FCGI -listen /tmp/fcgi.sock app.psgi FastCGI: administrador (pid 3336): inicializado FastCGI: administrador (pid 3336): servidor (pid 3337) iniciado FastCGI: servidor (pid 3337): inicializado
Una aplicación Hola mundo funcional que se ejecuta como una sola línea :
$ plackup -e 'sub { [200, ["Content-Type" => "text/plain"], ["¡Hola, mundo!"]] }' HTTP::Server::PSGI: Aceptando conexiones en http://0:5000/
El comando anterior inicia un servidor HTTP que escucha en el puerto 5000 de cada interfaz local ( dirección IP ) y devuelve esta respuesta 200 OK a cada solicitud HTTP :
HTTP / 1.0 200 OK Fecha : Viernes, 19 de marzo de 2010 23:34:10 GMT Servidor : HTTP::Server::PSGI Tipo de contenido : text/plain Longitud del contenido : 13¡Hola Mundo!