Compare Programs

The simple answer is that they are essentially the same.

TESL: Teaching English as a Second Language. This term refers to teaching English in countries such as Canada, the US, Australia, etc., where English is the common everyday language in the community.
  TESOL: Teaching English to Speakers of Other Languages. This is a newer, umbrella term that encompasses both English and non-English speaking countries.

TEFL: Teaching English as a Foreign Language. This term to teaching English in countries such as Korea, Spain,
Brazil, etc., where English is not the common everyday language in the community.

There are many other acronyms used for teaching English. For example:
ELT = English Language Teaching
TEAL = Teaching English an Additional Language.
EAP = English for Academic Purposes
ESP = English for Specific Purpose

Other non-English Teaching acronyms:
TOEFL = Test of English as a Foreign language (mostly used for University entrance)
TOEIC = Test of English for International Communication (Mostly used for employment purposes)
IELTS = International English Language Testing System (For university, immigration and other purposes)