Is it (possible|wise|advisable) to write a "serious" http server in Perl?
Why would I ask? Well, if you have ever managed IIS before then you know that it has the ability to stop/start individual websites without stopping/starting all other websites in the process.
I was disappointed with Apache's httpd v2 when it was released without that feature. Also, after seeing the
architecture of IIS7, Apache httpd v2 is already showing some age.
Some other things I would like to see in a "modern" http server include:
- Built-in distributed application- and session-state.
- The ability to use different processes for different websites.
- The ability to specify resource limits on a per-website basis.
- Cluster-awareness. Load-balancing and application clustering should not be "bolted-on" as an afterthought. These features are important enough to be included as part of the overall system architecture.
- A "mini" version capable of running a single website - especially useful for local development and testing.
- Like FCGI, the ability to pass "requests" to another process and return "responses." This would presumably be simpler than requiring a compiled binary (*.so) as a module.
Writing something with these features should be fairly trivial given Perl's awesome flexibility. However, the apparent lack of existing Perl http servers (barring *::Simple or *::Lite servers on CPAN) is enough to make me wonder - "Do others know something about this that I don't?"
So - is it time to write a "serious" http server in Perl?
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.