The file exchange is used to transfer large or binary data, like e.g. the files stored in the Bit Repository or large results from requests.

Transporting files for bit storage in the messages themselves is considered bad for the following reasons:

For those reasons files are in the protocol referred to by an URL. The protocol itself does not impose any limitations on the exact protocol used in the URL. It is left up to the specific implementations and concrete repository which protocols can be used. 

For the reference implementation see File exchange for a concrete solution.