Interestingly, rsync can be used via an HTTP proxy, so presumably the protocol gets divided into HTTP requests. Doesn't seem too crazy really: HTTP supports partial downloads and uploads, and the rolling hashes can be easily be encoded in HTTP requests, too.
Yes, but the more useful options that rsync supports, such as all the file manipulation gear won't work via http so you'll end up with a subset of the functionality.