Are there any sophisticated web servers for the Arduino?

Is there anything thing more sophisticated than the standard library implementation that is used in the IDE examples? I'm not asking for Apache's httpd or Tomcat, but is there something akin to lighttpd?

I've looked and searched and all I can find is the standard one. I'm sure that there must be, but it's a problem as the standard one has no name and so can't be excluded from the search phrase.

I think you need to be more specific about what sort of features you're looking for, given that the most common Arduino has 32k of memory, much of which is used up if you try to read a flash-card filesystem...
(lighttpd is about 200k, not including shared libraries or services provided by the operation system.)

Are there any sophisticated web servers for the Arduino?

In 2k of SRAM?

I'm amazed that even an unsophisticated server works.

...R

@westfw, I was thinking of dynamic sites rather than spewing up a 1GB static site from flash storage. So no flash libraries.

@Robin2 Well I'm actually amazed that there isn't a better server.

Are you telling me that not a single project exists in the known universes that extends, develops or adapts the default server that comes with the IDE? What happened? Did those developers suddenly die horribly leaving no records? Were they (and their laptops) abducted by aliens? Not a single Hackaday or github project? Nothing at all on this site? Nothing to take advantage of the W5500 chip? Nothing tailored to the Due? That's 96 KB and 84 MHz for heaven's sake.

I simply find it incredulous. This thing called the Internet of Things has happened, which I understand uses the internet. Perhaps I've misunderstood the role of the internet bit in that. If what you say is true, this must the the only internationally renown software that's never been forked or extended. Kudos for that at least :slight_smile:

cossoft:
Nothing to take advantage of the W5500 chip? Nothing tailored to the Due? That's 96 KB and 84 MHz for heaven's sake.

You did not mention those devices in your Original Post and "Arduino" is normally taken to mean an Uno or Mega. And, compared to an RPi or a cheap PC 96k and 84MHz is like zero and standing still.

Are you telling me that not a single project exists in the known universes that extends, develops or adapts the default server that comes with the IDE? What happened? Did those developers suddenly die horribly leaving no records? Were they (and their laptops) abducted by aliens?

We've all been waiting for you to come along and do the development. :slight_smile:

More seriously, why would anyone waste time developing a "sophisticated" web server on any of the Arduino devices when an RPi or a cheap laptop provides a much better platform.

Arduinos were developed to do the kinds of thing that you cannot do on a PC - such as real time interaction with hardware.

...R

Me cut code? All those FOR-NEXT and GOTO words look really hard. Have you ever seen a monkey playing with a hammer and a pot of glue? I'd be worse.

If what you say is true, it's hard to comprehend. I've been looking at various protocols being developed for IoT control based on PROCESSING and MQTT. There are piles of custom IP /serial DIY examples too whereby people are reinventing the wheel over and over. Messaging requires a 3rd party broker (can you fit one into 2K?) and serial clearly isn't routeable (without IP gateways).

So that leaves an IP based REQUEST /RESPONSE protocol which is the eminent domain of HTTP. Again, I register my huge surprise that Arduino httpd hasn't been taken forward :o

The ESP8266 has a better web server but it still pales in comparison to anything running on a Raspberry Pi.

See these examples.

So you don't understand code, you don't understand the protocols involved, and you don't have a list of things that you want the hypothetically "more-sophsticated" web server to actually DO.

A "sophisticated" web server generally has features that permit better server-side access to the file system (no file system exists on an arduino) via scripting languages (which are too big to run on an arduino) and better security provisions (which an arduino has no hardware support for, also tends to be big and slow and which is HARD.) An Arduino is incapable of being a "sophisticated" web server. It's not a very good IoT device.

Is there anything thing more sophisticated than the standard library implementation that is used in the IDE examples?

Yes, see catweazle's home automation site. Runs on a Mega2650, I believe. Seems to be down at the moment.