HTTP and FTP (note there is a section on the wikipedia page illustrates the differences between HTTP and FTP) are both application layer protocols.
See also here.
HTTP:
- used to make request response communications between a server and a client
- this communication can be used to both upload and download text and binary information
- state less
- faster when transferring many small files
- used for web pages with or without authentication required
FTP:
- also performs uploading and downloading of information
- stateful control connection
- faster for single large file transfers
- file transfer authentication needed
- limited support of pipe-lining
The big difference is that HTTP fixes many of the issues incurred by FTP. One example is that FTP has very little overhead and no metadata while HTTP provides this and there HTTP supports the sending of multiple files. Also HTTP is state less.
Some extra sources I would advise you read for more information on this are:
1. http://www.differencebetween.net/technology/difference-between-ftp-and-http/
2.
https://daniel.haxx.se/docs/ftp-vs-http.html
Also for more information on the different types of FTP, I would advise looking at this Stack Overflow post.