libcurl basics

    libcurl is a library of functions that are provided with a C API, for
    applications written in C. You can easily use it from C++ too, with only a few
    considerations (see libcurl for C++ programmers. For
    other languages, there exist “bindings” that work as intermediate layers
    between libcurl the library and corresponding functions for the particular
    language you like.

    That said, networking and protocols are areas with lots of pitfalls and
    special cases so the more you know about these things, the more you will be
    able to understand about libcurl’s options and ways of working. Not to
    mention, such knowledge is invaluable when you are debugging and need to
    understand what to do next when things don’t go as you intended.

    libcurl generally does the simple and basic transfer by default, and if you
    want to add more advanced features, you add that by setting the correct
    options. For example, libcurl doesn’t support HTTP cookies by default but it
    does once you tell it.