The tense–lax distinction
As shown there, the vowel at the end of happy /ˈhæpi/ is what we call the FLEECE vowel. It is a tense vowel, sometimes called the close front unrounded vowel. The vowel in sit /sɪt/ is the corresponding lax vowel, the one that we call the KIT vowel, or sometimes the near-close near-front unrounded vowel.
The difference between your other pair is again that of tense /u/ for the GOOSE vowel versus lax /ʊ/ for the FOOT vowel.
You need to learn to hear the difference between these tense/lax vowel pairs, because hearing the tense–lax distinction is critical to understanding English. Until you can hear it, English will always sound confusing to you.
Here's the chart for all twelve simple vowels (monophthongs) of American English:

Notice how there are contrasting pairs of vowels:
- tense /e/ versus lax /ɛ/, so FACE versus DRESS
- tense /i/ versus lax /ɪ/, so FLEECE versus KIT
- tense /o/ versus lax /ɔ/, so GOAT versus THOUGHT
- tense /u/ versus lax /ʊ/, so GOOSE versus FOOT
In materials for young children, the tense vowels are often called “long” and the lax ones “short”, but this is not a good way to talk about them because vowel length is not phonemic. Plus if you were talking about length, you would have to mention that all three phonemic diphthongs (/aʊ/, /aɪ/ and /ɔɪ/) take longer to say, too.
All that said, the word happy does not always end with a tense vowel in all speakers. In those with happy tensing, it does, but in others it does not. Happy tensing is the more common variety.