Apple says, NSURL is developed using RFC 1738 (and some others).
Now RFC 1738 specifies only that an web URL has a scheme and a scheme specific part.
I want to know all the schemes which NSURL understands. And because I use it with NSURLRequest and NSURLConnection (the so called "URL Loader System"), I must know all the schemes which these understand.
Why? Because I just want to know. Apple does not go into detail about it in the documentation, the just say the comply to RFC 1738. That tells a lot and also nothing.
NSURL
"supports" any scheme, because it knows nothing about how to use the scheme in question. It is just a wrapper around the concept of a URL.
Likewise, NSURLRequest
knows no more, but it does have capability to store extra information which could be protocol-specific.
NSURLConnection
is where you start getting more protocol-specific. NSURLConnection
is capable of supporting any URL you throw at it, provided there is a suitable NSURLProtocol
subclass registered for that. But out of the box, it is documented to support http:
, https:
, ftp:
and file:
. You can test it with a quick +canHandleRequest:
call.
Empirically, the system supports data:
URLs too. I have filed radar://problem/13649313 with Apple asking them to document this.