httpd module vs inets {packet,http}

Ryan Rawson <>
Wed Mar 8 11:24:47 CET 2006


Would you mind elaborating a bit for me?

Basically my application is going to automatically discover its fellow
node hosts via LDAP (we have a mechanism already), use mnesia to
maintain state across them, and each machine is going to answer HTTP
service queries.  That is my current design - one major advantage is
mnesia is a great cross-node database, great for high read/low write
services that need to be able to answer questions quickly but don't do
nearly as many writes.  This particular feature of my app made me
think Erlang would be well suited.

-ryan


On 3/8/06, Sean Hinde <> wrote:
> That is interesting feedback on the tutorial, thanks.
>
> If I can find time to wrestle again with the sometimes flaky update
> mechanism on the Trapexit HOWTO pages I will update the tutorial to
> point out more clearly where the API to user code appears, as well as
> checkin a couple of bugfixes from folks who have studied it deeply
> and posted on the list.
>
> FWIW I would recommend Yaws most highly for new applications. It is
> not nearly as heavyweight as it first appears, and is very nice for
> writing this sort of application.
>
> Sean
>
> On 8 Mar 2006, at 08:11, Ryan Rawson wrote:
>
> > I didn't like the howto - it seemed like my code would be littered
> > with http protocol droppings, even though the actual framing is taken
> > care of by the http packet mode.
> >
> > I think for me, yaws seems like this whole big thing, and kind of
> > bothers me - enough to look at alternatives first.
> >
> > Thanks for the mod_esi pointer.
> >
> > -ryan
> >
> > On 3/8/06, Matthias Lang <> wrote:
> >>
> >> A "REST" web service seems to be some sort philosophy for how to
> >> design a service. For the purpose of "how do I do this in Erlang", I
> >> think it just boils down to "how do I serve dynamically generated web
> >> pages". If it's not, then my answer probably misses the point.
> >>
> >> So: if you just want to serve dynamic web pages, you can choose
> >> between two ready-made web servers: OTP's httpd and YAWS. Both web
> >> servers are used in the real world. They have different peformance
> >> tradeoffs and different approaches to interfacing with 'your'
> >> application. YAWS seems to be more popular for new applications. If
> >> you can't make up your mind about which one to use, flip a coin.
> >>
> >> The OTP httpd interface you probably want to use is 'mod_esi':
> >>
> >>   http://www.erlang.org/doc/doc-5.4.12/lib/inets-4.6.2/doc/html/
> >> mod_esi.html
> >>
> >> Writing code to use it is straightforward, the hard part is all the
> >> fudging around with httpd.conf.
> >>
> >> If, on the other hand, you want to write your own web server 'from
> >> scratch', then the undocumented http mode of the packet driver is
> >> useful. That's what the 'howto' you found is about.
> >>
> >> Matthias
> >>
> >> --------------------
> >>
> >> Ryan Rawson writes:
> >>> Hi all,
> >>>
> >>> I read the 'fast httpd' howto from trapexit.org, and I also
> >>> looked at
> >>> the httpd module in OTS.  I'm a little confused - it seems to me
> >>> that
> >>> the httpd howto doesn't use the httpd module, it uses a undocumented
> >>> feature of the packet driver (which may in turn internally use the
> >>> httpd module).  While the httpd documentation seems to describe
> >>> callbacks but its kind of thinly documented.  Not the end of the
> >>> world, but I'm confused - what is the recommended thing to do here?
> >>> What do other people do?  Say for example, creating a REST "web
> >>> service" ?
> >>>
> >>> Thanks in advance for any tips and hints.
> >>> -ryan
> >>
>
>



More information about the erlang-questions mailing list