They all can mean women who sleep with men for money.
Prostitute is the most technical term.
Hooker seems most commonly used in the United States, while in Britain this term is reserved for a position in rugby.
Whore sounds much more violent to me.
If one were seeking a woman to pay to sleep with him, he probably wouldn't say "I'm looking for a whore tonight," but use hooker or prostitute .
Calling someone a whore can be used to insult them, implying they sleep with many people (though for men the term would be man-whore ).
E.g., "She is such a whore."
Going back to a previous example, "I'm looking for a whore tonight" implies more to me that he is looking for someone who is easy to sleep with, not for a prostitute.
Not to say you can't use the others in an insult.
From "Baby Got Back," by Sir Mix-A-Lot, we also have the opening dialogue:
They only talk to her, because, she looks like a total prostitute , 'kay?
But in this case the lady quoted is just saying that she looks like a prostitute, not that she is one, necessarily.
If she said "She is such a prostitute ," that would mean that is her profession, not that she sleeps with a lot of men for free.
english.stackexchange.com/users/1606/Claudiu
Claudiu pretty much covered it, but there's one thing more to discuss.
"Whore" has an unsavory meaning, to be sure, but it's lately been used in a milder sense, to describe someone who will do just about anything to get something he or she wants.
In this case it is coupled with another noun.
Examples: attention whore : Someone who will do anything to get attention
loot whore : in MMORPG games, someone who will do anything to get gear rep whore : on StackExchange sites, someone who will do anything to gain reputation
This is still a derogatory term, but it can also be used among friends in a somewhat affectionate sense.
But the meaning can vary depending on how it is said: "Jill is such an attention whore"
can mean you think she's obnoxious or funny,
depending on how much you like Jill.
english.stackexchange.com/users/2303/Robusto
If you're after the politically correct term, it's "Sex worker".
english.stackexchange.com/users/1420/Andrew Grimm
The reason "hooker" is in common use in America (and not elsewhere), is because it is named after a U.S. Civil War general, Joseph Hooker (who let such women follow his troops around, contributing to lax discipline that led to defeat in battle).
english.stackexchange.com/users/10287/Tom Au
Interesting discussion with excellent answers.
There is at least one more dimension: the "Latinization" of English.
Online Etymological Dictionary (emphasis modified) whore (n.) 1530s
spelling alteration (see wh-) of Middle English hore, from Old English hore "prostitute, harlot," from Proto-Germanic *horaz (fem.
*horon-)
"one who desires" (cognates: Old Norse hora "adulteress," Danish hore, Swedish hora, Dutch hoer, Old High German huora
"whore;" in Gothic only in the masc.
hors "adulterer, fornicator," also as a verb, horinon "commit adultery"), from PIE *ka- "to like, desire," a base that has produced words in other languages for "lover" ( cognates:
Latin carus "dear;" Old Irish cara "friend;" Old Persian kama "desire;" Sanskrit Kama, name of the Hindu god of love, kamah "love, desire," the first element in Kama Sutra).
Compare with prostitute (v.) 1520s, "to offer to indiscriminate sexual intercourse (usually in exchange for money)," from Latin prostitutus, past participle of prostituere "to expose to prostitution, expose publicly," from pro- "before" (see pro-) +
statuere "cause to stand, establish," from PIE root *
sta- "to stand."
The development of the two words are unusually dissimilar considering the similarities of their modern English meanings.
English is technically a Germanic language , but modern English contains many more words from Latin and Romance languages than from Germanic or Anglo-Saxon sources.
One pie chart on Wikipedia claims that 58% of the English lexicon is Latin or Romance and only 26% is Germanic.
Many things have contributed to Latin's strong influence in modern English.
Some of the best analysis of Latin's influence comes from writers who are fiercely opposed to the Latinization.
When looking at the modern usage of "whore" and "prostitute", the general rule that most people feel that Latin words are more formal, proper, or acceptable in "polite society.
"
The other answers support this idea: whore is much more insulting than prostitute.
The full etymological entries are packed with interesting facts about both words, so if you find this interesting, I recommend clicking the above links.
Conclusion: both words exist in English because of the Latinization of English and people's need for a word that is not so crude that it is unacceptable in some situations.
english.stackexchange.com/users/103476/hunterhogan
Prostitute : The long technical term a person who has sex for money.
Hooker :
A slang term for a prostitute.
Whore :
A Derogative term for a prostitute or loose woman.
english.stackexchange.com/users/90346/Jonathon
"Hooker", "whore", and "prostitute" all mean  whore ; what are the differences between them?
"Hooker", "whore", "prostitute", when to use which?
english.stackexchange.com
<word-choice><nouns><offensive-language>
english.stackexchange.com/questions/6386
english.stackexchange.com/users/2581/Yousui
All of these terms refer to a woman who sleeps with men in exchange for money, though "Prostitute" is the most technical term. "Hooker" is more prevalent in the USA than the UK and the term "Whore" is considered unsavoury or insulting. They all mean women who sleep with men for monetary gain. A "prostitute" is the more technical term, with "hooker" a preferred term in the USA. "whore" is a more violent term, and the word is also used as an insult.
All of these terms refer to a woman who sleeps with men in exchange for money, though "Prostitute" is the most technical term. "Hooker" is more prevalent in the USA than the UK and the term "Whore" is considered unsavoury or insulting.  They all can mean women who sleep with men for money.  None of them are actually the current politically correct term, which is "Sex worker". Prostitute  is the most technical term.  Hooker  seems most commonly used in the United States, while in Britain this term is reserved for a position in rugby.   "Whore" has an unsavory meaning, to be sure, but it's lately been used in a milder sense, to describe someone who will do just about anything to get something he or she wants, but calling someone a  whore  can be used to insult them, implying they sleep with many people. Whore is much more insulting than prostitute.  
They all can mean women who sleep with men for money.  "Prostitute" is the most technical term for a person who has sex for money.  "Whore" is a more violent, insulting term. However, it has become more  used in a milder sense, to describe someone who will do just about anything to get something he or she wants. "Hooker" seems most commonly used in the United States, while in Britain this term refers to a position in rugby. All of these terms refer to a woman who sleeps with men in exchange for money, though "Prostitute" is the most technical term. "Hooker" is more prevalent in the USA than the UK and the term "Whore" is considered unsavoury or insulting.
Whore is a derogatory term.
 They all can mean women who sleep with men for money.  None of them are actually the current politically correct term, which is "Sex worker". Prostitute  is the most technical term.   Hooker  seems most commonly used in the United States, while in Britain this term is reserved for a position in rugby.    "Whore" has an unsavory meaning, to be sure, but it's lately been used in a milder sense, to describe someone who will do just about anything to get something he or she wants, but calling someone a  whore  can be used to insult them, implying they sleep with many people. The other answers support this idea: whore is much more insulting than prostitute.  
All of these terms refer to "a woman who sleeps with men in exchange for money". Prostitute is considered to be the most technical term. Whore is considered to be more insulting and unsavoury. Hooker is more prevalent in the USA than the UK.