libcurl
libcurl is a client-side networking library with very extensive and robust HTTP client support.
Project website:Â http://curl.haxx.se/libcurl/
As a well-maintained project in C, libcurl generally builds cleanly on most platforms, and is usually included in a usable form with Linux. Other platforms may include it, but sometimes the version is too old to use with Shibboleth, which requires a version newer than approximately 7.10.0. There are frequent security updates available, so always verify that the version in use isn't superseded.
Non-Windows
This package should be built with OpenSSL.
If you're building from source on a non-Windows platform, a typically usable configure
 command would be:
./configure --disable-static --enable-thread --without-ca-bundle
Many different options are supported to enable/disable advanced features. Most are irrelevant to Shibboleth, but a few may add obscure capabilities that might be useful to some people.
Windows
See this topic.