L.A.
Normal is different from acceptable.
It is not acceptable to have a tantrum. You need to help your child stop this behavior now.
If he throws a tantrum at home, step over him and ignore him. Or you can tell him to go to his room till he is finished, or carry him to his room and tell him he can come out after he is finished. Use a voice that he can hear, but that he will have to quiet down a bit to hear.
Once he calms down, ask him what was wrong and NOT to use a whining voice. Or if you think you know what set him off, ask him, Were your frustrated because.....? You seemed angry because....
If you see a fit coming on, turn to him and ask, "what are you feeling?" Try to get him to TELL you the emotion.. Ask him if he needs to go to his room for a minute, or if he needs a big hug ask him to take a big breath and blow out slowly.. (pick only 1)
If this happens in public carry him to the car and leave EVERY time. Do not speak to him till he calms down. Tell him you will not take him places if he cannot use his words instead of his crying, whining or fit throwing.
I am sending you strength.