Please note: we strongly discourage deploying your code with FTP. In our experience it's very error prone; allowing you to partially deploy code, deploy code which isn't meant to be live yet, clobber production configs etc. It also tends towards being insecure by default.
If you are unwilling or unable to use git-deploy then the most common option is FTP. We recommend FTPS (FTP + TLS) or SFTP (SSH File Transfer Protocol) is used at all times: this will
encrypt all communications with the server
provide some proof of server authenticity (more so with SFTP)
detect in-flight data corruption
Plain FTP is totally insecure and unreliable; as such we will not cover its use here.