The passed-in data belongs to the caller and libsoup will copy it into new memory leaving the caller free to reuse the original memory.
The memory is statically allocated and constant; libsoup can use the passed-in buffer directly and not need to worry about it being modified or freed.
The caller has allocated the memory and libsoup will assume ownership of it and free it with g_free().
The lifetime of the memory being passed.