General rule for 'haben' vs 'sein'
What is the general rule for using these two words? Initially I thought 'sein' was used as 'to be' and 'haben' used as 'to have' but then came the example 'Du hast Durst'. The literal translation would be 'You have thirsty' which of course doesn't make sense.
The literal translation would be "you have thirst", which is unconventional but not nonsensical. There is also an adjective form "durstig" ("thirsty"), but the phrase "du bist durstig" is not used---it'd just make you sound like a foreigner. :)
I think I finally found the first discussion that hasn't been deleted, phew.
Idiomatic expressions with "to have + noun" meaning "to be [something]" are seen in other languages such as French and Spanish. In French, "I am hungry" is "J'ai faim", literally "I have hunger". In Spanish, it is "Tengo hambre", which also means "I have hunger". Idiomatic expressions with "to have" can also be used to express thirst, fear, being cold, being hot, among others. (Ref. http://french.about.com/od/expressions/a/avoir.htm, http://www.studyspanish.com/lessons/tenexp.htm)
This is actually an interesting thing in language. In English and Russian, you are literally thirsty. In German and French, you have thirst. It's more interesting for feeling hot. In English, you are hot. In Russian, the heat is "coming" to you ("Мне жарко"), and in French you have heat ("J'ai chaud").
To "be" hungry is less nonsensical than to "have" hunger? I can "have" a fever; I can "have" a sense of the time. So why doesn't English say "I am fevery" or "I am time-sensy"?
It's important when learning a language to accept its logic, keep an open mind, and don't get too hung up on how English might make sense of the same idea.
Haben = to have .............. Sein = to be ............. The reason you say "I habe Hunger", it's because Hunger is a noun, so you have to use the verb "haben" but you can also say "Ich bin hungrig", because in this case "hungrig" is an adjective. But it's more common to say "I habe Hunger"
There is subtle phrasing that is used by a native speaker. You will pick up on it. For instance, I was told Ich bin heiss would not be the way to express that you are warm. To say this would imply something you just might not want to say! It's a slang for sexual orientation. What you would say is Es ist heiss which means it is hot.
Learning a new language always means adapting to a new way of viewing things. I wouldn't bother too much about it, it comes with long-term experience. The general rule, as stated above, is simple: noun + "haben" (Ich habe Hunger/Durst) or adjective + "sein" (Ich bin hungrig/durstig).
'to have', 'to be', and 'to go', are common auxiliary verbs in different languages. to learn a language is learn where to use them. for instance, "I am going to be famous" .... two forms of 'to be' one form of 'to go' ... but really are you going anywhere?