Изменения

Перейти к: навигация, поиск

Платформы для запуска Perl веб-приложений

1530 байтов добавлено, 18:11, 29 августа 2009
HTTP::Server::Simple
Плюсы:
* Интерфейс — CGI. В режиме '''nph''' - "Non-Parsed Headers" - т.е. на STDOUT нужно выводить просто HTTP-ответ. Это устраняет по сути все интерфейсные ограничения CGI.
* Можно использовать стандартные модули Net::Server::'''xx''' для выбора поведения сервера — например, можно использовать как TCP, как и UNIX сокеты, можно создать prefork ({{CPAN|Net::Server::PreFork}} или {{CPAN|Net::Server::PreForkSimple}}) или мультиплексирующий однопоточный сервер ({{CPAN|Net::Server::Multiplex}}).
* Существует некоторое количество модулей для расширения данного сервера — в частности, для запуска приложений на некоторых фреймворках через HTTP::Server::Simple, например, для {{CPAN|Mason}}.
* Модуль достаточно широко используется при тестировании веб-приложений, в качестве легковесного тестового сервера: {{CPAN|Test::HTTP::Server::Simple}}.
* Можно использовать стандартные модули Net::Server::'''xx''' для выбора поведения сервера — например, можно использовать как TCP, как и UNIX сокеты, можно создать prefork ({{CPAN|Net::Server::PreFork}} или {{CPAN|Net::Server::PreForkSimple}}) или мультиплексирующий однопоточный сервер ({{CPAN|Net::Server::Multiplex}}).
Минусы:
* Интерфейс — снова Интерфейс CGI с аналогичными FastCGI всё-таки требует по крайней мере выбора нужных модулей для разбора запросов и SCGI интерфейсными минусамиобъединения всего этого функционала в своём приложении.* Странная реализация parse_request() и parse_headers(), по меньшей мере, вплоть до версии 0.40. Лечится просто - переопределением соответствующей функции, но это ведь тоже лишние действия! :)** Читает из стандартного ввода запрос и заголовки она по 1 символу функцией [http://perldoc.perl.org/functions/sysread.html sysread()], что весьма негативно сказывается на производительности.** В качестве разделителя строк, согласно всем стандартам, при обмене данными по сети, должно выступать сочетание CR-LF в платформо-независимом варианте: "\015\012". Тем не менее, функции HTTP::Server::Simple используют просто "\n", что тоже работает, но не является идеально переносимым вариантом.
== Заключение ==

Навигация