"Working with web servers is something that most of us
will find ourselves doing much more in the future. HTTP is becoming
more and more needed, even for non-web embedded devices, since it's
often the best way to re-flash a device over the Net. Port 80, the
standard HTTP port, is more often than not left open on firewalls.
Because of this I've often found it safe to use HTTP to transfer
data through firewalls. Port 80 is usually our friend.
But, inside a device, we often find we don't have the resources
or the power in some cases to support the use of a large, slow HTTP
library. Many of the libraries available have some nice bells and
whistles in the way of features and function. The curl library, for
instance, has support for secure HTTP transfers, and that
definitely is needed in many situations. However, the curl library
also has a lot of other features that are not needed by every
A library that is a bit more lean, but has fewer features, is
the GNOME HTTP library. However, the library seems to make copies
of the data for transfer and storage. It requires that you
initialize and maintain the request, and the documentation is very
sparse. Even with these limitations, the library does work and is
fairly easy to use."