I’ve been creating RYO web servers for a few years now. The great thing about doing it yourself is that it it gives you the ability to embed a web server into pretty much anything. Sure, you can use Apache, or Tomcat or Websphere or any one of a bucket load of web server products as a front end to your application, and I’m not against doing that because there are a lot of benefits but the down side is that they add a layer of complexity to any architecture, not least because quite simply there IS another layer between the user and whatever it is you want to control. That means more knowledge required to configure/run/maintain the architecture and more things to either get wrong or go wrong.
Now me, I’ve never been one for doing what everyone else does and I’m a great believer in simplicity and actually understanding the implications of what you do. Yes, it’s easy to throw a web front end on something but I’m not sure the extra complexity always make is easier for the system support staff.
The daft part is that the base http protocol is so simple it’s laughably easy to implement and once you understand the how, it’s pretty easy to do for almost any platform or programming environment. I’ve done it in REXX (yes REXX) and Windows Visual Basic. As long as a language or platform has TC/IPIP support that you can invoke, it’s really pretty easy.